最近調試粒子系統時發現一個非常詭異的問題,來這兒記錄一下。。。
Unity版本:2019.4.0f1,問題如下:
void Update() { if (Input.GetKeyDown(KeyCode.A)) { var main = ps.main; main.startDelayMultiplier = 1 * 0.8f; main.startLifetimeMultiplier = 1; ps.Play(); } if (Input.GetKeyDown(KeyCode.B)) { ps.Stop(); } }
使用這段簡單的測試代碼,當運行時,粒子系統默認自動播放,然后點擊B,粒子停止播放,再點擊A,粒子就不會再播放了。而且點編輯器上的Play也無濟於事,感覺像是粒子系統內部拋異常了。
經過嘗試,同時動態修改startDelayMultipiler和startLifetimeMultiplier才會出現這個問題,單獨動態修改其中一個是沒有這個問題的,目前還不知究竟是什么原因導致的,在這里記錄一下,這個問題找了好久,怎么都沒想到是粒子系統的問題,吐血三丈高~