Unity粒子系统

文章详细介绍了Unity中粒子系统的主要属性,包括系统运行时间、循环、预热、延迟、生命周期、速度、大小、旋转、颜色、重力调整、模拟空间、速度调整等。此外,还涵盖了发射模块、速度随生命周期、限制速度、继承速度、力、颜色变化、大小变化、旋转变化、外部力、噪声、碰撞和触发器等多个模块的属性功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主模块属性功能

Duration  系统运行的时间长度。

Looping  如果启用此属性,系统将在其持续时间结束时再次启动并继续重复该循环。

Prewarm  如果启用此属性,系统将初始化,就像已经完成一个完整周期一样(仅当 Looping 也启用时才有效)。

Start Delay  启用此属性后,系统开始发射前将延迟一段时间(以秒为单位)。

Start Lifetime  粒子的初始生命周期。

Start Speed  每个粒子在适当方向的初始速度。

3D Start Size  如果要分别控制每个轴的大小,请启用此属性。

Start Size  每个粒子的初始大小。

3D Start Rotation  如果要分别控制每个轴的旋转,请启用此属性。

Start Rotation  每个粒子的初始旋转角度。

Flip Rotation  使一些粒子以相反的方向旋转。

Start Color  每个粒子的初始颜色。

Gravity Modifier  缩放 Physics 窗口中设置的重力值。值为零会关闭重力。

Simulation Space  控制粒子的运动位置是在父对象的局部空间中(因此与父对象一起移动)、在世界空间中还是相对于自定义对象(与您选择的自定义对象一起移动)。

Simulation Speed  调整整个系统更新的速度。

Delta Time  在 Scaled 和 Unscaled 之间进行选择,其中的 Scaled 使用 Time 窗口中的 Time Scale 值,而 Unscaled 将忽略该值。此属性对于出现在暂停菜单 (Pause Menu) 上的粒子系统非常有用。

Scaling Mode  选择如何使用变换中的缩放。设置为 HierarchyLocal 或 Shape。Local 仅应用粒子系统变换缩放,忽略任何父级。Shape 模式将缩放应用于粒子起始位置,但不影响粒子大小。

Play on Awake  如果启用此属性,则粒子系统会在创建对象时自动启动。

Emitter Velocity  选择粒子系统如何计算 Inherit Velocity 和 Emission 模块使用的速度。系统可使用刚体组件(如果存在)或通过跟踪变换组件的移动情况来计算速度。

Max Particles  系统中同时允许的最多粒子数。如果达到限制,则移除一些粒子。

Auto Random Seed  如果启用此属性,则每次播放时粒子系统看起来都会不同。设置为 false 时,每次播放时系统都完全相同。

Random Seed  禁用自动随机种子时,此值用于创建唯一的可重复效果。

Stop Action  当属于系统的所有粒子都已完成时,可使系统执行某种操作。当一个系统的所有粒子都已死亡,并且系统存活时间已超过 Duration 设定的值时,判定该系统已停止。对于循环系统,只有在通过脚本停止系统时才会发生这种情况。

    Disable  禁用游戏对象。

    Destroy  销毁游戏对象。

    Callback  将 OnParticleSystemStopped 回调发送给附加到游戏对象的任何脚本。

Culling Mode  选择粒子在屏幕外时是否暂停粒子系统模拟。在屏幕外时进行剔除具有最高效率,但您可能希望继续进行非一次性 (off-one) 效果的模拟。

    Automatic  循环系统使用 Pause__,而所有其他系统使用 Always Simulate。 | |    Pause And Catch-up | 系统在屏幕外时停止模拟。当重新进入视图时,模拟会执行一大步以到达在不暂停的情况下可实现的程度。在复杂系统中,此选项可能会导致性能尖峰。 | |    Pause | 系统在屏幕外时停止模拟。 | |    Always Simulate | 无论是否在屏幕上,系统始终处理每个帧的模拟。这对于烟花等一次性效果(在模拟过程中这些效果很明显)非常有用。 | | Ring Buffer Mode__保持粒子存活直到它们达到 Max Particles 计数,此时新粒子会取代最早的粒子,而不是在它们的寿命终结时才删除粒子。

    Disabled  禁用 Ring Buffer Mode__,以便系统在粒子生命周期终结时删除粒子。 | |    Pause Until Replaced | 在粒子生命周期结束时暂停旧粒子,直至达到 Max Particle__ 限制,此时系统会进行粒子再循环,因此旧粒子会重新显示为新粒子。

    Loop Until Replaced  在粒子生命周期结束时,粒子将倒回到其生命周期的指定比例,直至达到 Max Particle 限制,此时系统会进行粒子再循环,因此旧粒子会重新显示为新粒子。

Emission 模块属性功能

Rate over Time每个时间单位发射的粒子数。

Rate over Distance每个移动距离单位发射的粒子数。

Bursts爆发是指生成粒子的事件。通过这些设置可允许在指定时间发射粒子。

Time设置发射爆发粒子的时间(粒子系统开始播放后的秒数)。

Count设置可能发射的粒子数的值。

Cycles设置播放爆发次数的值。

Interval设置触发每个爆发周期的间隔时间(以秒为单位)的值。

Probability控制每个爆发事件生成粒子的可能性。较高的值使系统产生更多的粒子,而值为 1 将保证系统产生粒子。

Velocity over Lifetime 模块属性功能

Linear X, Y, Z粒子在 X、Y 和 Z 轴上的线性速度。

Space指定 Linear X, Y, Z 轴是参照本地空间还是世界空间。

Orbital X, Y, Z粒子围绕 X、Y 和 Z 轴的轨道速度。

Offset X, Y, Z轨道中心的位置,适用于轨道运行粒子。

Radial粒子远离/朝向中心位置的径向速度。

Speed Modifier在当前行进方向上/周围向粒子的速度应用一个乘数。

Limit Velocity Over Lifetime 模块属性功能

Separate Axes将轴拆分为单独的 X、Y 和 Z 分量。

Speed设置粒子的速度限制。

Space选择速度限制是适用局部空间还是世界空间。仅当启用了 Separate Axes 时,此选项才可用。

Dampen当粒子速度超过速度限制时,粒子速度降低的比例。

Drag对粒子速度施加线性阻力。

Multiply by Size启用此属性后,较大的粒子会更大程度上受到阻力系数的影响。

Multiply by Velocity启用此属性后,较快的粒子会更大程度上受到阻力系数的影响。

Inherit Velocity 模块属性功能

Mode

### 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; // 是否正在发射 } } ``` 上述代码展示了如何通过脚本来读取粒子系统的部分基础信息,并且演示了启用/禁用发射的方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值