Unity的Legacy粒子系统里面有些参数可能会让人迷惑,如果不是有心人专门指点,你根本不知道为啥你调的那个参数没有任何作用……比如Stretched Particles,大家都知道这个字面意思代表什么,但是当你复制了一个已有的粒子系统,而粒子的速度恰好为0,那么你就会发现粒子消失了。后来才知道stretched必须和粒子运动方向对应……还有一个叫one shot的参数,你勾选之后会发现粒子是一波一波地发射的,但是发射间隔根本没法调整,而且如果想要只发射一下,必须勾选Auto destructed。其实这些弄懂了也都还好,最关键的是这个粒子系统没法预热,也就是每次开始游戏,粒子都是慢悠悠地从少到多地发射,我实在没法想象如果要做循环该怎么办……另外一点,如果一个特效的需要有些节奏感的话,粒子系统的延迟发射必不可少,但是Legacy粒子竟然没有这个参数!我现在总算明白了他们后来为啥要重新写一个粒子系统了,这个就是拿来凑数的……废话不提,如果需要粒子系统提前或者延迟发射的话,就要用到这个脚本:
var delayTime:float=0;
var delayPlusTime:float=0;
var rampDownTime:float=1;
var origMinEmission:float;
var origMaxEmission:float;
function Start () {
origMinEmission=particleEmitter.minEmission;
origMaxEmission=particleEmitter.maxEmission;
particleEmitter.emit=false;
}
function Update () {
if(