【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移

这篇具有很好参考价值的文章主要介绍了【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:Unity游戏demo

⭐🅰️Unity3D赛车游戏⭐




⭐前言⭐


😶‍🌫️版本: Unity2021
😶‍🌫️适合人群:Unity初学者进阶
😶‍🌫️学习目标:3D赛车游戏的基础制作
😶‍🌫️技能掌握:

Unity3D游戏制作片段【一】


🎶(A)烟雾粒子特效


😶‍🌫️初步添加

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏

  • 新建脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:   汽车特效管理 
//___________创建者:_____梅西湖_____
//_____________________________________
//-------------------------------------
public class CarEffect : MonoBehaviour
{

    public ParticleSystem[] smoke;
    public CarMoveControl carControl;

    void Awake()
    {
        smoke = new ParticleSystem[4];

        //给有烟雾数组初始化赋值
        for (int i = 0; i < 4; i++)
        {
            smoke[i] = transform.GetChild(1).GetChild(i).GetComponent<ParticleSystem>();

        }

        //初始化CarMoveContorl脚本
        carControl = gameObject .GetComponent<CarMoveControl>();

        StopSmoke();
    }

    private void Update()
    {
     //如果烟雾判断开关开启-按下空格或者 烟雾开关开启

      if(carControl.playPauseSmoke || InputManager.InputManagerment.handbanl ) StarSmoke();

      else StopSmoke();

    }

    //烟雾特效开始
    public void StarSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            smoke[i].Play();
        }
    }

    //烟雾特效停止
    public void StopSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            smoke[i].Stop();
        }
    }
}


  • CarMoveContorl漂移板块中新增代码
    【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏
  • 相关参数官方解释

WheelHit.sidewaysSlip
WheelHit


😶‍🌫️漂移烟雾粒子参数设置和位置设置后的效果

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏

  • 参数设置
    【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏
😶‍🌫️漂移烟雾排放量与速度关联

  • 脚本修改
    //烟雾特效开始
    public void StarSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            //var自动变成需要的类型,“你变我也变”
            var emisiion = smoke[i].emission;
            emisiion.rateOverTime = carControl.Km_H * 10 >= 200 ? carControl.Km_H * 10 : 2000;

            smoke[i].Play();

        }
    }
😶‍🌫️最终脚本

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:   汽车特效管理 
//___________创建者:_____梅西湖_____
//_____________________________________
//-------------------------------------
public class CarEffect : MonoBehaviour
{

    public ParticleSystem[] smoke;
    public CarMoveControl carControl;


    void Awake()
    {
        smoke = new ParticleSystem[4];

        //给有烟雾数组初始化赋值
        for (int i = 0; i < 4; i++)
        {
            smoke[i] = transform.GetChild(1).GetChild(i).GetComponent<ParticleSystem>();

        }

        //初始化CarMoveContorl脚本
        carControl = gameObject .GetComponent<CarMoveControl>();

        StopSmoke();
    }

    private void Update()
    {
      //如果烟雾判断开关开启-按下空格或者 烟雾开关开启

      if(carControl.playPauseSmoke || InputManager.InputManagerment.handbanl ) StarSmoke();

      else StopSmoke();

    }

    //烟雾特效开始
    public void StarSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            //var自动变成需要的类型
            var emisiion = smoke[i].emission;

            emisiion.rateOverTime = carControl.Km_H * 10 >= 200 ? carControl.Km_H * 10 : 2000;

            smoke[i].Play();

        }
    }

    //烟雾特效停止
    public void StopSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            smoke[i].Stop();
        }
    }
}



🎶(B)引擎咆哮


😶‍🌫️资源下载

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏
【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏


😶‍🌫️多普勒效应

生活中有这样一个有趣的现象:当声音由远及近或者由近及远时,我们会听到声音音调有高低的变化。这个现象就是“多普勒效应”。距离远的时候听到的声音比较低沉,距离近的时候,声音高频成分增加,听起来音调有所上升。


😶‍🌫️ 四声道代码资源导入

using System;
using UnityEngine;
using Random = UnityEngine.Random;

//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能: 汽车声道管理
//___________创建者:秩沅_______________
//_____________________________________
//-------------------------------------

public class CarAudio : MonoBehaviour
{

    //这个脚本读取汽车的一些当前属性,并相应地播放声音。

    //发动机的声音可以是一个简单的循环和音调剪辑,或者

    //可以是代表引擎音色的四个剪辑的交叉混合

    //在不同的转速和节气门状态下。

    //发动机夹子都应该是稳定的俯仰,而不是上升或下降。

    //当使用四通道发动机交叉火力时,四个夹子应为:

    //lowAccelClip:发动机处于低转速,节气门打开(即在非常低的速度下开始加速)

    //highAccelClip:高转速下的Thenengine,节气门打开(即加速,但几乎处于最高速度)

    //lowDecelClip:发动机处于低转速,节气门处于最小值(即怠速或发动机在极低转速下制动)

    //highDecelClip:高转速下的Thenengine,节气门处于最小值(即发动机在非常高的速度下制动)

    //为了获得适当的交叉火力,剪辑的音高应该全部匹配,在低音和高音之间有一个八度偏移。

    public enum EngineAudioOptions //发动机音频选项
    {
        Simple,      //单声道音频
        FourChannel      //四声道音频
    }

    public EngineAudioOptions engineSoundStyle = EngineAudioOptions.FourChannel;//将默认音频选项设置为四声道
    public AudioClip lowAccelClip;                                              //用于低加速的音频
    public AudioClip lowDecelClip;                                              //用于低减速音频
    public AudioClip highAccelClip;                                             //用于高加速的音频
    public AudioClip highDecelClip;                                             //用于高减速的音频

    public float pitchMultiplier = 1f;                                          // 用于更改音频片段的音调
    public float lowPitchMin = 1f;                                              // 低音的最低音高
    public float lowPitchMax = 6f;                                              // 低音的最高音高
    public float highPitchMultiplier = 0.25f;                                   // 用于改变高音的音高
    public float maxRolloffDistance = 500;                                      // 开始发生翻滚的最大距离
    public float dopplerLevel = 1;                                              // 音频中使用的多普勒效应
    public bool useDoppler = true;                                              // 多普勒效应是否勾选

    private AudioSource m_LowAccel;  // 低加速度声音的来源
    private AudioSource m_LowDecel;  // 低减速声音的来源
    private AudioSource m_HighAccel; // 高加速度声音的来源
    private AudioSource m_HighDecel; // 高减速度声音的来源
    private bool m_StartedSound;     // 是否已开始发声的标志

    //private CarController m_CarController; // Reference to car we are controlling

    public CarMoveControl m_CarController;

  //  private AIcontroller aicontroler;


    //开始发声
    private void StartSound()
    {
        //获取carcontroller(这不会为null,因为我们需要组件)

        //m_CarController=GetComponent<CarController>();

        //设置单声道音频源

        m_HighAccel = SetUpEngineAudioSource(highAccelClip);

        // 如果枚举选择了四声道音频,设置四个音频源

        if (engineSoundStyle == EngineAudioOptions.FourChannel)
        {
            m_LowAccel = SetUpEngineAudioSource(lowAccelClip);
            m_LowDecel = SetUpEngineAudioSource(lowDecelClip);
            m_HighDecel = SetUpEngineAudioSource(highDecelClip);
        }

        //已开始发声的标志
        m_StartedSound = true;

    }

    //停止发声
    private void StopSound()
    {
        //销毁所有音频
        foreach (var source in GetComponents<AudioSource>())
        {
            Destroy(source);
        }

        //发声停止
        m_StartedSound = false;
    }


    private void FixedUpdate()
    {

        //获取到主摄像头的距离
        float camDist = (Camera.main.transform.position - transform.position).sqrMagnitude;  //sqrMagnitude为单位平方毫米

        //如果物体和相机的距离 超过最大滚降距离,则停止发声——模拟汽车事故损毁
        if (m_StartedSound && camDist > maxRolloffDistance * maxRolloffDistance)
        {
            StopSound();
        }

        //如果没有播放,相机的距离和最大距离较近,则启动声音
        if (!m_StartedSound && camDist < maxRolloffDistance * maxRolloffDistance)
        {
            StartSound();
        }

        if (m_StartedSound)
        {
            //根据汽车的转速,音高在最小值和最大值之间插值。.

            float pitch = ULerp(lowPitchMin, lowPitchMax, m_CarController.engineRPM / m_CarController.maxRPM);

            //取最小音高
            pitch = Mathf.Min(lowPitchMax, pitch);

            if (engineSoundStyle == EngineAudioOptions.Simple)
            {
                // 单声道时, 高加速度声音的音频资源的音高
                m_HighAccel.pitch = pitch * pitchMultiplier * highPitchMultiplier;
                m_HighAccel.dopplerLevel = useDoppler ? dopplerLevel : 0;
                m_HighAccel.volume = 1;
            }
            else
            {
                //4声道引擎声音

                //根据乘数调整音高
                m_LowAccel.pitch = pitch * pitchMultiplier;
                m_LowDecel.pitch = pitch * pitchMultiplier;
                m_HighAccel.pitch = pitch * highPitchMultiplier * pitchMultiplier;
                m_HighDecel.pitch = pitch * highPitchMultiplier * pitchMultiplier;
                float accFade = 0;

                // 获取基于加速度的声音衰减值

                accFade = Mathf.Abs((InputManager.InputManagerment .vertical > 0 ? InputManager.InputManagerment.vertical : 0));

                float decFade = 1 - accFade;

                //根据汽车转速获得高衰减值
              
                float highFade = Mathf.InverseLerp(0.2f, 0.8f, m_CarController.engineRPM / 10000);
                float lowFade = 1 - highFade;

                // 调整一组值以使其更加现实
                highFade = 1 - ((1 - highFade) * (1 - highFade));
                lowFade = 1 - ((1 - lowFade) * (1 - lowFade));
                accFade = 1 - ((1 - accFade) * (1 - accFade));
                decFade = 1 - ((1 - decFade) * (1 - decFade));

          
                //根据淡入度值修改音频资源
                m_LowAccel.volume = lowFade * accFade;
                m_LowDecel.volume = lowFade * decFade;
                m_HighAccel.volume = highFade * accFade;
                m_HighDecel.volume = highFade * decFade;

                //调整多普勒水平值

                m_HighAccel.dopplerLevel = useDoppler ? dopplerLevel : 0;
                m_LowAccel.dopplerLevel  = useDoppler ? dopplerLevel : 0;
                m_HighDecel.dopplerLevel = useDoppler ? dopplerLevel : 0;
                m_LowDecel.dopplerLevel  = useDoppler ? dopplerLevel : 0;
            }
        }
    }

    //设置新的音频源并将其添加到 对象
  
    private AudioSource SetUpEngineAudioSource(AudioClip clip)
    {
        // 在游戏对象上创建新的音频源组件并设置其属性
        AudioSource source = gameObject.AddComponent<AudioSource>();
        source.clip = clip;
        source.volume = 0;
        source.spatialBlend = 1;
        source.loop = true;

        // 音频片段从随机点开始

        source.time = Random.Range(0f, clip.length);
        source.Play();
        source.minDistance = 5;
        source.maxDistance = maxRolloffDistance;
        source.dopplerLevel = 0;
        return source;
    }


    // 反转Lerp,允许值超过从a到b的范围
    private static float ULerp(float from, float to, float value)
    {
        return (1.0f - value) * from + value * to;
    }
}






🎶(C)漂移轨迹


😶‍🌫️拖尾渲染器参数

【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏


😶‍🌫️拖尾渲染器添加


【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏

  • 将TrailRender的灯光关闭
    【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏
  • 选择拖尾的材质和设置宽度
    【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏
😶‍🌫️核心代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:   汽车特效管理 
//___________创建者:_____梅西湖_____
//_____________________________________
//-------------------------------------
public class CarEffect : MonoBehaviour
{
   
    public ParticleSystem[] smoke;     //获取粒子特效数组 

    public TrailRenderer[] TrailArray; //获取漂移拖尾数组

    public CarMoveControl carControl;  //获取脚本CarMoveContorl

    void Awake()
    {
        //初始化两个数组
             smoke = new ParticleSystem[4];
        TrailArray = new TrailRenderer[4];
    
        //给有烟雾数组 和 拖尾数组 初始化赋值
        for (int i = 0; i < 4; i++)
        {
            smoke[i] = transform.GetChild(1).GetChild(i).GetComponent<ParticleSystem>();

       TrailArray[i] = transform.GetChild(1).GetChild(i).GetComponent<TrailRenderer>();

        } 
        
        //初始化CarMoveContorl脚本
        carControl = gameObject .GetComponent<CarMoveControl>();

        //特效先停止
        StopSmoke();
     
    }

    private void Update()
    {
        //如果烟雾判断开关开启-按下空格或者 烟雾开关开启  和 漂移轨迹拖尾判断

        if (carControl.playPauseSmoke || InputManager.InputManagerment.handbanl)
        {
            StarSmoke();   //开启烟雾
            StartTrail();  //开启拖尾特效
        }

        else
        {
            StopSmoke();  //关闭烟雾
            StopTrail();  //关闭拖尾特效
        }
    }

    //烟雾特效开始
    public void StarSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            //var自动变成需要的类型
            var emisiion = smoke[i].emission;

            emisiion.rateOverTime = carControl.Km_H * 10 >= 200 ? carControl.Km_H * 10 : 2000;

            smoke[i].Play();
            
        }

    }

    //烟雾特效停止
    public void StopSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            smoke[i].Stop();
           
        }
     
    }

    //拖尾轨迹开启
    public void StartTrail()
    {
        for (int i = 0; i < 4; i++)
        {
            TrailArray[i].emitting = true;
        }
    }

    //拖尾轨迹关闭
    public void StopTrail()
    {
        for (int i = 0; i < 4; i++)
        {
            TrailArray[i].emitting = false;
        }
    }

}


😶‍🌫️添加漂移音效

  • 关闭苏醒时激活,设置为3D,取消多普勒效应
    【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏
    音频源官方手册解释
    【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏

😶‍🌫️最终代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:   汽车特效管理 
//___________创建者:_____梅西湖_____
//_____________________________________
//-------------------------------------
public class CarEffect : MonoBehaviour
{
   
    public ParticleSystem[] smoke;     //获取粒子特效数组 

    public TrailRenderer[] TrailArray; //获取漂移拖尾数组

    public CarMoveControl carControl;  //获取脚本CarMoveContorl

    public AudioSource skipClip;       //获取音频文件


    void Awake()
    {
        //初始化两个数组
             smoke = new ParticleSystem[4];
        TrailArray = new TrailRenderer[4];

        //获取音频资源
        skipClip = GetComponent<AudioSource>();

        //给有烟雾数组 和 拖尾数组 初始化赋值
        for (int i = 0; i < 4; i++)
        {
            smoke[i] = transform.GetChild(1).GetChild(i).GetComponent<ParticleSystem>();

       TrailArray[i] = transform.GetChild(1).GetChild(i).GetComponent<TrailRenderer>();

        } 
        
        //初始化CarMoveContorl脚本
        carControl = gameObject .GetComponent<CarMoveControl>();

        //特效先停止
        StopSmoke();
        //音效先停止
        skipClip.Stop();
    }

    private void Update()
    {
        //如果烟雾判断开关开启-按下空格或者 烟雾开关开启  和 漂移轨迹拖尾判断

        if (carControl.playPauseSmoke || InputManager.InputManagerment.handbanl)

            StarSmoke();   //开启烟雾
        else       
            StopSmoke();  //关闭烟雾

        //当按下空格时

        if (InputManager.InputManagerment.handbanl)

            StartTrail();  //开启拖尾特效
        else 
             StopTrail();  //关闭拖尾特效

    }

    //烟雾特效开始
    public void StarSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            //var自动变成需要的类型
            var emisiion = smoke[i].emission;

            emisiion.rateOverTime = carControl.Km_H * 10 >= 200 ? carControl.Km_H * 10 : 2000;

            smoke[i].Play();
            
        }

    }

    //烟雾特效停止
    public void StopSmoke()
    {
        for (int i = 0; i < 4; i++)
        {
            smoke[i].Stop();
           
        }
     
    }

    //拖尾轨迹开启
    public void StartTrail()
    {
        for (int i = 0; i < 4; i++)
        {
            TrailArray[i].emitting = true;
        }
        skipClip.Play();
    }

    //拖尾轨迹关闭
    public void StopTrail()
    {
        for (int i = 0; i < 4; i++)
        {
            TrailArray[i].emitting = false;
        }
        skipClip.Stop();
    }

}



⭐🅰️⭐


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移,# unity游戏demo制作,游戏,汽车,科技,前沿信息,元宇宙,c#,赛车游戏文章来源地址https://www.toymoban.com/news/detail-699421.html


到了这里,关于【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity3D赛车游戏】【六】如何在Unity中为汽车添加发动机和手动挡变速?

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者 😶‍🌫️学习目标:3D赛车游戏的基础制作 😶‍🌫️技能掌握

    2024年02月11日
    浏览(59)
  • 【Unity3D赛车游戏】【四】在Unity中添加阿克曼转向,下压力,质心会让汽车更稳定

    !在这里插入图片描述 👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者 😶‍🌫️学习目标:3D赛车游戏的基础制

    2024年02月11日
    浏览(46)
  • Unity3D PVP游戏位置同步算法优化详解

    在Unity3D中,PVP(Player versus Player)游戏的位置同步是一项重要的技术,它决定了游戏中玩家之间的互动体验。本文将详细介绍Unity3D PVP游戏位置同步算法的优化方法,并给出相应的技术详解和代码实现。 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础

    2024年01月16日
    浏览(63)
  • 【Unity3D】粒子系统ParticleSystem

    1 简介         拖尾(TrailRenderer)、线段渲染器(LineRenderer)、粒子系统(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系统的功能最为强大,特效也最炫酷,但操作也最复杂。粒子系统中,不断地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持一致(

    2024年01月16日
    浏览(49)
  • Unity3D粒子系统之制作烟雾特效

    本文将会介绍如何使用Unity内的粒子系统制作烟雾效果。 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D 粒子系统之基础属性介绍 先附上预览图: 材质贴图 首先我们需要一张烟雾材质用的材质贴图,我是自己画的,可以参考下图自己画一张或者去网上找素材

    2024年02月02日
    浏览(54)
  • Unity3D粒子系统之制作火焰特效

    本文将会介绍如何使用Unity内的粒子系统制作烟雾效果。 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D粒子系统之基础属性介绍 先上预览图吧 用自己熟悉的绘画工具画一张类似这样的图片(相似即可,白灰色部分边缘不规则),注意一定要黑底。 将画好的

    2024年02月02日
    浏览(47)
  • Unity3D粒子系统之基础属性介绍(一)

    下文将介绍如何用Unity3D的粒子系统。 (1)Duration:粒子的发射周期 图中的5.00表示在5秒后会进入下一个粒子的发射周期。如果勾选Looping,则5秒后也就是第一个周期结束时粒子会停止发射。Prewarm是预热系统,只有在勾选Looping后才有效,开始播放粒子是已经发射了一段时间的

    2024年02月03日
    浏览(43)
  • Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

    一、属性介绍 1、主面板Particle System (1)Duration:粒子发射周期 图中,5.00即在发射5秒后进入下一个粒子发射周期。若没有勾选Looping,则5秒后粒子会停止发射。 (2)Looping:粒子按照周期循环发射 让粒子发射时间循环起来,一直发射粒子。 (3)Prewarm:预热系统 开始播放粒

    2024年02月04日
    浏览(53)
  • unity3d在汽车邻域应用浅谈

    Unity3D是一款实时3D内容创作软件,它在汽车应用创新方面发挥了重要作用。以下是Unity3D在汽车应用创新方面的几个关键领域: 智能座舱:Unity3D为汽车智能座舱提供了解决方案,通过重新定义座舱设计,将车舱打造成全新的“第三空间”。这种解决方案不仅提供了炫目的视效

    2024年01月24日
    浏览(48)
  • [Unity3D] 记录一下ScrollView中粒子无法被Mask遮挡的问题解决过程

    项目解决问题1所使用的Shader链接:https://www.codenong.com/cs107033982/ 解决思路: 1、粒子特效使用的Mobile/Particles/Additive(Shader)材质球不包含模板测试,添加模板测试后可以与普通Image一样被Mask遮挡,所以我们给粒子的材质球加上模板测试。 2、普通Image使用默认的材质球,该材质球

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包