我有一个粒子系统爆炸,我想在玩家死亡时玩。这个想法是,所有其他的东西都会暂停,但是爆炸仍在继续,就像你死时吃的Pacman动画(一切冻结,pacman死亡动画播放)。当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发布的小行星基地帖子非常有趣,可能值得从长远看!你可以做到这一点
这看起来很有帮助,我会稍后再试! 我想知道的一件事是,此刻,当我将时间刻度设置为0时,我暂停了3件事情。跟随小行星基础技术会更容易吗,还是您认为暂停每个单独的组件会更容易? – Tom
它完全取决于你想达到的目标,我个人喜欢小行星基地的方法,因为它提供了很大的灵活性,但如前所述,它需要一些纪律来使用它。 尝试两种,看看哪些适合你:) – Garfty
试了一下,虽然它有点混乱,它的工作原理!谢谢! – Tom