Unity粒子系統(ParticleSystem)動態修改某些字段導致的問題


最近調試粒子系統時發現一個非常詭異的問題,來這兒記錄一下。。。

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才會出現這個問題,單獨動態修改其中一個是沒有這個問題的,目前還不知究竟是什么原因導致的,在這里記錄一下,這個問題找了好久,怎么都沒想到是粒子系統的問題,吐血三丈高~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM