Emitter State
1. Life Cycle Mode(生命周期模式)
1. Self(自定义生命周期)
描述:
Self
模式表示粒子发射器生命周期由我们自定义,即发射器的生命周期由我们设置的规则来决定是否结束或销毁自己。行为:
发射器在 Self 模式下会根据设置的生命周期来运行,控制其启动、停止以及销毁的时间和条件。
适用场景:
适用于一些独立的、一次性的粒子效果,如爆炸、火花等。你可以根据自己的需求设置发射器在完成粒子生成后自行结束。
2. System(系统代理)
描述:
System
模式意味着粒子发射器的生命周期由粒子系统来管理,即发射器会根据整个粒子系统的生命周期来决定是否结束。换句话说,发射器的生命周期依赖于粒子系统的状态,当粒子系统生命周期结束时,所有的发射器也会停止运行。行为:
在 System 模式下,粒子发射器的生命周期将被粒子系统所代理管理。如果粒子系统结束,所有属于该系统的发射器都会立即结束。这种方式适用于需要系统统一管理的场景,发射器不会在系统结束之前自行消失。
这种模式通常用于那些粒子系统需要统一生命周期的场景,确保所有发射器都能根据系统的状态停止或销毁。
适用场景:
适用于一些需要系统级控制的效果,例如当整个场景或关卡结束时,所有的粒子特效都需要停止的场景。比如在游戏中的某个事件触发时,系统需要停止所有特效,这时候使用 System 生命周期模式会很有效。
2. Inactive Response(不活动响应)
1. Complete(完成)
描述:当发射器变为不活跃时,粒子系统会正常完成其当前操作,并停止生成新的粒子。粒子系统将保留其当前状态,直到所有现有粒子都完成生命周期。
行为:
在 Complete 模式下,发射器会停止生成新的粒子,但所有现有粒子继续存在,直到它们自然消失(即生命周期结束)。没有新的粒子生成,粒子系统会根据粒子的生命周期自动结束。
这种模式适用于你希望发射器停止产生新的粒子,但不强制立即销毁现有粒子的场景。
适用场景:
适用于那些不需要立刻销毁粒子系统的场景。例如,烟雾效果可以让发射器停止生成新烟雾,但现有烟雾粒子继续自然消散。
2. Kill(销毁)
描述:当发射器变为不活跃时,粒子系统会销毁所有当前粒子并清理资源。粒子系统会立即停止运行并释放所有相关资源。
行为:
在 Kill 模式下,发射器不仅停止生成新粒子,还会立即销毁所有现有粒子。这意味着粒子系统的所有粒子都会立即消失,不再存在。
这种模式适用于那些需要立即清理粒子并释放资源的场景。
适用场景:
适用于游戏中的临时性效果,尤其是在关卡结束时或事件触发后,希望清理所有粒子效果的场景。例如,爆炸或冲击波效果完成后需要销毁所有相关粒子。
3. Continue(继续)
描述:当发射器变为不活跃时,粒子系统会继续生成新的粒子,并保持粒子系统的行为。虽然发射器变为不活跃,但粒子仍然会继续生成和更新。
行为:
在 Continue 模式下,发射器继续其工作,粒子系统不会受到影响。虽然发射器不再生成新的粒子,但现有粒子会继续按照其生命周期和运动轨迹更新,直到生命周期结束。
这种模式适用于你希望发射器保持粒子生成状态,直到所有粒子完成生命周期的场景。
适用场景:
适用于粒子系统的持续性效果,特别是当你希望粒子继续活动而无需再生成新的粒子时。例如,烟雾或火焰等效果可能在发射器停止工作后,仍然需要让现有的粒子继续存在一段时间。
3. Loop Behavior(循环行为)
1. Infinite(无限循环)
描述:发射器会无限循环生成粒子,直到显式地停止或满足外部条件。
行为:
在 Infinite 模式下,发射器会持续生成粒子,并在每个生命周期结束后立刻重新开始下一个循环,没有任何延迟。粒子系统会不断进行循环,生成新的粒子,直到发射器被手动停止或者达到特定的停止条件。
这种模式适用于那些需要持续不断的特效,像持续喷发的火焰、烟雾、雨滴等。
适用场景:
适用于需要不停生成粒子的场景,如永恒的火焰、持续的烟雾或风雨等。适用于那些没有结束条件,粒子效果必须一直进行的场景。
2. Once(单次循环)
描述:发射器生成粒子一次,并在生成所有粒子后停止。整个生命周期结束后,发射器不会再继续生成新的粒子。
行为:
在 Once 模式下,发射器会生成粒子,直到完成指定的粒子数量或生命周期为止。粒子发射器生成完毕后,系统停止,不再继续生成任何新的粒子。
这种模式适用于只需要一次性爆发或执行的特效,如爆炸、瞬间的冲击波等。发射器会在完成其任务后停止,并释放资源。
适用场景:
适用于那些不需要循环的特效,如爆炸、瞬间产生的火花、弹药爆炸等一次性事件。
3. Multiple(多次循环)
描述:发射器会在多个循环之间生成粒子。每个循环都会有一个固定的持续时间,粒子发射器会根据指定的循环次数生成粒子。
行为:
在 Multiple 模式下,发射器会按照设定的次数重复生成粒子,并在每个循环结束后间隔一段时间。每次循环结束后,粒子发射器会进入一个暂停或延迟状态,直到下一个循环开始。
这种模式适用于需要多次发射特效的场景,如多个爆炸效果按顺序发生,或者粒子效果在一定时间内持续进行,但每个循环之间有间隔。
适用场景:
适用于那些需要分阶段或按序列播放的特效,例如多个爆炸效果、逐步增加的烟雾或火焰效果等。
4. Loop Duration(循环持续时间)
描述:设置每次循环的时间长度,即发射器每次循环期间的总时长。
类型:浮动值(秒)。
功能:定义发射器在每次循环期间的持续时间。此属性与
Looping
生命周期模式结合使用,指定每个循环的持续时间。使用场景:
在需要精确控制粒子循环时,例如粒子爆发后进入一个持续的渲染状态,或者动画效果的每个循环长度。
5. Recalculate Duration Each Loop(每个循环重新计算持续时间)
描述:决定是否每次循环都重新计算持续时间,或者每次循环都使用相同的持续时间。
选项:
Enabled:每次循环时都重新计算持续时间。适用于那些动态变化的效果,例如粒子的速度、方向或其他属性随着时间变化。
Disabled:每个循环的持续时间保持不变,适用于固定时长的效果。
使用场景:
Enabled:适用于那些需要周期性调整或变化的粒子效果,如随着时间推移粒子行为变得更加复杂或多样。
Disabled:适用于固定长度的重复效果,如持续的烟雾、风等。
6. Loop Delay(循环延迟)
描述:在发射器每次循环之间添加延迟时间,用于调整每次循环之间的间隔。
类型:浮动值(秒)。
功能:设置每次循环之间的时间延迟。这意味着每个循环结束后,发射器将在一段时间内处于休眠状态,然后才会重新开始下一个循环。
使用场景:
Loop Delay 适用于不希望连续发生的效果。例如,火焰或爆炸效果需要一定的停顿才能避免效果过于密集。
7. Scalability Mode(可伸缩性模式)
1. Enable Distance Culling(启用距离剔除)
描述:当启用时,粒子系统会根据与观察者的距离来判断是否应该显示粒子。如果粒子系统距离观察者过远,则会被剔除(不渲染和不计算)。
行为:
在 Enable Distance Culling 开启的情况下,粒子系统会根据距离相机的距离动态控制粒子的显示。距离超过一定阈值后,粒子系统将不再进行渲染和计算,从而提高性能。
这种方法适用于那些只在玩家/相机视野内需要展示的粒子系统,减少了在远离视野的区域渲染无效的粒子系统,降低了计算负担。
适用场景:
用于场景中的背景特效或远距离的粒子效果,例如远处的烟雾、雾霾、远山上的云朵等,只有在玩家接近时才需要渲染和计算。
2. Enable Visibility Culling(启用可见性剔除)
描述:当启用时,粒子系统会根据是否在相机视野范围内来决定是否进行渲染。粒子系统如果处于视野之外,会被剔除,不进行渲染或计算。
行为:
Enable Visibility Culling 会根据粒子系统是否在相机视野内来决定是否继续渲染。如果粒子系统不在视野内,渲染和计算会被停止,直到再次进入视野。
与距离剔除不同,视野剔除是基于相机的可见性,而不仅仅是基于距离。这通常与距离剔除一起使用,以实现更高效的粒子系统。
适用场景:
适用于那些需要在特定视角内才需要显示的粒子特效,如场景中的特定区域的效果,例如某些区域的火焰、天气效果等,这些效果只有在玩家进入视野时才需要显示。
3. Reset Age On Awaken(唤醒时重置年龄)
描述:当启用时,粒子系统在被重新激活时会重置所有粒子的年龄。这样,粒子会从生命周期的起始阶段重新开始计算。
行为:
启用 Reset Age On Awaken 后,当粒子系统被唤醒(例如从暂停状态恢复)时,所有粒子的年龄会重置为零。这意味着粒子系统的粒子会重新开始其生命周期,仿佛它们刚刚被发射一样。
如果没有启用此选项,唤醒后的粒子将保持它们原来的年龄,从而继续其生命周期中的状态。
适用场景:
适用于那些希望粒子系统从“新鲜”状态开始的场景,特别是当粒子系统被暂停或禁用后需要恢复时。例如,在一个交互式游戏中,当某个特效被暂停后再恢复时,可能希望粒子从头开始,而不是继续之前的粒子状态。