Time.timeScale = 0时播放粒子系统?

Play a particle system when Time.timeScale = 0?

我有一个粒子系统爆炸,我想在玩家死亡时播放。这个想法是其他一切都暂停但爆炸仍在继续,就像你死后的吃豆人动画(一切都冻结并且吃豆人死亡动画播放)。

问题是,它行不通。我知道 Time.timeScale = 0 会暂停一切,我已经尝试使用这个脚本来解决这个问题,但它似乎不起作用:

void Update()
 {
     if (Time.timeScale < 0.01f)
     {
         particleSystem.Simulate(Time.deltaTime, true, false);
     }
 }

这个我也试过了,还是不行:

 private ParticleSystem pSystem;

 public void Awake()
 {
     pSystem = gameObject.GetComponent<ParticleSystem>();
 }

 public void Play()
 {
     pSystem.Simulate(Time.unscaledDeltaTime,true,true);
 }

 public void Update()
 {
     pSystem.Simulate(Time.unscaledDeltaTime,true,false);
 }

我已经使用附在我的爆炸粒子系统预制件上的脚本尝试了这段代码,当你死亡时,它会在玩家的位置实例化。

谢谢!

更新: 结果我试过使用 particleSystem.Simulate(Time.unscaledDeltaTime, true, false);,但我是在 FixedUpdate() 而不是 Update() 中调用它。

然而,Garfty post 下方的小行星基地 post 确实很有趣,可能值得长期 运行!

一种方法是使用 Time.unscaledDeltaTime

另一种方法是创建您自己的时间管理器,但这需要一些纪律来坚持。 Asteroid Base wrote a nice article on something like this here.

的人

希望对您有所帮助!