当玩家死亡时,我想要玩一个粒子系统爆炸。这个想法是其他一切停顿但爆炸仍在继续,比如当你死的Pacman动画(一切都冻结而且pacman死亡动画播放)。
麻烦的是,它不会起作用。我知道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发布的Asteroid Base帖子非常有趣,从长远来看可能值得做!
答案 0 :(得分:1)
另一种可以接近这种方式的方法是创建自己的时间管理器,但需要遵守一些规则。 Asteroid Base的人写了一篇关于类似here的文章。
我希望这有帮助!