acecase 发表于 2021-7-7 13:10

U3D粒子系统默认参数·一

个人笔记,可能有误,欢迎指正
所基于的U3D版本:2020.3.0f1c1
unity自带的粒子系统创建方法


1、创建空物体
2、为其添加粒子系统组件(particle system)
粒子系统基本参数


1、Duration
粒子系统的生成持续时间。
指的是喷射持续时间,在此时间内会持续喷射粒子。时间结束后会停止生成粒子,已生成的粒子不会消失。
单位:秒。粒子系统里大部分时间参数的单位都是秒。

2、Loop
是否循环。
指的是是否循环喷射,即喷射持续时间结束后是否立即重新来过。

3、Prewarm
预热。仅循环状态下可用。令粒子系统开启时,立即进行一次循环。
由于循环会持续喷射粒子,因此一般需要做持续性特效才会开循环。而粒子系统开始运行的时候,是从0个粒子开始一个个喷的,因此刚打开时会有一个粒子数缓慢增长的阶段。
打开后,粒子系统启用时就会立即先进行一次循环,以一次循环之后的粒子状态持续运行。即游戏运行时会看到一个常态的粒子系统,而不会看到这个粒子系统是如何生长起来的。
可能会对性能有影响。

4、Start Lifetime/Speed/Rotation/Color
每个粒子的初始生命长度,秒为单位。
每个粒子的初始速度。
每个粒子的初始旋转角度,正数表示顺时针旋转,单位为度。
每个粒子的初始色彩。
以上参数都可以用常数、曲线、给定范围的随机、给定范围的随机曲线等方式赋值。
其中,曲线的赋值法,是根据喷射的时机,给予粒子一个给定的值。例如:


一个曲线

粒子系统的喷射持续时间为4秒,以此曲线为粒子的生命长度赋值。
则第0秒喷出的粒子,生命长度为0;第2秒喷出的粒子,生命长度约为2;以此类推,第4秒喷出的粒子,生命长度为8。
其他值的曲线赋值与此类似。

5、Flip Rotation
反向旋转比例。
令一定比例的粒子,在生成时,向相反的方向旋转指定的角度。
角度由上一条的Start Rotation指定。效果如图。


相反方向的旋转

6、Gravity Modifier
重力模拟。
类似于控制重力加速度的参数。

7、Simulation Space/Speed
粒子的空间系/全局速度放缩参数。
Space参数,为Local,即每个单独的粒子采取本地坐标。届时移动粒子系统这个空物体的坐标时,已生成的粒子会跟随移动。
Space参数,为World,即每个单独的粒子采取世界坐标。届时移动粒子系统坐标,已生成的粒子不会受到影响。适合做各种拖尾感。
Speed参数会影响整个粒子系统的播放速度。

8、Max Particles
最大粒子数。

9、Stop Action
停止后行为。
指的是粒子系统完全播放完毕后的行为,可选Disable这个物体/直接从场景删除等操作。
完全播放完毕,指的是最后一个粒子也死去。有可能出现Duration已结束,而粒子存活时间很长的情况。这种情况下,粒子系统还不算完全停止,不会触发此处选择的行为。

10、Culling Mode
暂停模式(翻译不太准确,但说剔除模式也不好理解)。
此处的暂停模式,指的是当粒子系统移出屏幕范围时的处理模式。
可选暂停/暂停并挂起/依然持续模拟/自动。
暂停并挂起,类似线程被挂起一样,恢复时需要花更多时间,但暂停期间更节省资源(大概)。
自动,则会对循环系统做暂停,非循环系统保持持续。

11、Ring Buffer Mode
环形缓冲区模式。一般是关闭的。
非官方理解。开启时(选择不是Disable的选项即开启),将单个粒子存储的缓冲区,视作队列。在此期间,粒子即使已经应该死亡了,也不会死亡,会一直存续到缓冲区满,由新的粒子把它顶出队列。队列容量由Max Particles指定。
在粒子该死不死的时候,其操作有两种选项。
Pause until replaced:一直保持死前的样貌,直到被顶替。依然会运动的,因为速度也保留了。
Loop until replaced:在指定的粒子生命周期内一直循环。
其衍生出的参数要求指定一个生命区间,粒子系统喷出的所有粒子不论是否该死,都会仅循环该生命区间内的状态(大小、色彩等)。
例如,某单个粒子生命为8s,指定的生命区间为,则粒子出生时就是1.6秒时的样貌。4秒后,成长到5.6秒的样貌,随后(4秒刚过的一刹那)直接回到1.6秒的样貌。如此循环往复,直到被顶出队列。
Loop选项在开启循环时可能有BUG:在我设置最大粒子数为100,粒子初始生命为8秒时,监视器显示这个粒子系统拥有了160个粒子。并且应该是已经达到100个粒子之后,最老的粒子就停止了循环,走完了完整的生命周期,并在系统有了160个粒子时被顶出队列死亡。粒子初始生命为4时,最大粒子数会变成140。
不知道是U3D的bug还是我理解有问题。
如果打开这一条的话,一般这个粒子系统就永远都不会自主停止了,也就是没法触发第9条的行为,系统里会有粒子残留而可能影响性能。需要靠代码来强制关闭粒子系统。
页: [1]
查看完整版本: U3D粒子系统默认参数·一