Unity粒子系统

1.Particle Emitter
 2.Particle Animator
 3.Particle Render
  
 粒子发射器有两种Ellipsoid Particle Emitter和Mesh Particle Emitter
  
 A.此处以Ellipsoid Particle Emitter为例
 参数设置:
 Ellipsoid Particle Emitter
 Emit:是否允许发射粒子
 Min / Max Size 每个粒子的半径大小随机范围;越大每个粒子就越大,整个粒子系统看起来就越厚
 Min / Max Energy 每个粒子的能量随机范围;能量在空气中耗光就消失,能量越大,粒子从产生到消亡时间就越久
 Min / Max Emission 粒子单位时间排放量随机范围;排放量越大,粒子密度越大。
 World Velocity (x,y,z) 相对世界坐标系的各个轴速度。
 Local Velocity(x,y,z) 相对粒子的坐标系各个轴速度。
 Rnd Velocity(x,y,z)各个轴添加的随机速度。
 //Emitter Velocity ScaleThe amount of the emitter s speed that the particles inherit. 暂时不理解
 Tangent Velocity(x,y,z) 粒子经过发射器表面切向上的初始速度
 Simulate in Worldspace? 世界坐标系模拟。如果选择,则发射器不会随着物体的移动而移动。
 Angular Velocity粒子的旋转角速度
 Rnd Angular Velocity 随机添加的粒子旋转角速度的大小
 Rnd Rotation 粒子的初始随机角度
 One Shot 只发射一次,设置为false就是连续发射
 Ellipsoid (x,y,z)椭圆的比例,椭圆内部生成粒子
 Min Emitter Range 最小发射的椭圆范围 为0的话最小粒子就是圆形
  
 Particle Animator
 Does Animate Color是否允许粒子在生存时间内循环改变自身颜色,个人感觉颜色是先从第三个颜色开始变的
 Color Animation粒子循环改变的五种颜色
 World Rotation Axis 选择粒子旋转时围绕的轴(世界坐标系)可以制作先进的法术效果等
 Local Rotation Axis 选择粒子旋转时围绕的轴(自身坐标系)可以制作先进的法术效果等
 Size Grow粒子在生存时间内可以变大的范围
 Random Force 每一个frame随机添加给离子的力
 Force 每一个frame给粒子添加的力,相对世界坐标系
 Damping 阻尼衰减, 越大粒子能量衰减越快,消失越快
 Autodestruct 是否自动消亡
  
 Particle Render
 Material:显示应用的Material序列
 material的shader类型Particals/Additive

### Unity 粒子系统简介 Unity粒子系统是一个强大的工具,用于创建动态效果,如火焰、烟雾、爆炸等。它的核心功能通过 C++ 实现,在脚本中访问时只是调用了底层的功能[^1]。 #### 创建和配置粒子系统 要使用粒子系统,可以按照以下方式操作: 1. **创建粒子系统对象** 在场景中右键单击并选择 `Particle System` 来创建一个新的粒子发射器。 2. **调整基本参数** 打开 Inspector 面板后可以看到多个模块选项卡,例如 Emission(发射)、Shape(形状)、Velocity over Lifetime(生命周期速度)。这些模块控制着粒子的行为特性。 3. **设置发射速率** 在 Emission 模块下定义每秒产生的粒子数量或者自定义曲线来改变随时间变化的发射率。 4. **指定初始大小颜色旋转角度等属性** 利用 Main 和其他高级模块设定每个粒子出生时候的状态特征比如尺寸色彩方向等等。 5. **应用材质贴图给粒子渲染** 给 Particle Renderer 设置合适的 Texture 并调节 Alpha Blending Mode 达到透明度混合的效果呈现最佳视觉体验。 #### 解决常见问题 - 如果发现某些特定条件下无法正常显示粒子,请确认是否开启了 Camera culling mask 中对应的 Layer 层级。 - 对于性能优化方面考虑减少最大粒子数(Max Particles),关闭不必要的计算逻辑以及合理安排LOD(Level Of Detail)策略降低GPU负担提升效率表现。 - 当遇到同步多实例化的问题时记得检查预制体资源链接关系保持一致性避免数据丢失混乱现象发生。 ```csharp using UnityEngine; public class Example : MonoBehaviour { public ParticleSystem ps; void Start() { var main = ps.main; float duration = main.duration; // 获取持续时间 var emissionModule = ps.emission; bool isEmitting = emissionModule.enabled; // 是否正在发射 } } ``` 上述代码展示了如何通过脚本来读取粒子系统的部分基础信息,并且演示了启用/禁用发射的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值