如何在游戏暂停时(时间缩放=0)播放动画

3

我正在尝试使用 timeScale 将 Unity 中的游戏暂停,当暂停面板出现时将其设置为 0,并在禁用该面板时将其设置回 1。我的问题是当我暂停时,面板上的按钮没有显示它们的动画,因为时间刻度为 0。有没有其他方法解决这个问题?或者应该找到另一种不使用 timeScale 的暂停方式?

3个回答

15
在您的Animator组件中查找“Update Mode”选项并选择“Unscaled Time”,如下所示:

使用Unscaled Time作为Update Mode


5

有一种可能性是使用Enum来维护游戏的状态。例如,可以定义一个枚举:

enum GameState
{
    Started,
    Loading,
    Playing,
    Paused,
    Completed
}

在您的会话或任何便于访问的地方声明一个GameState类型的变量,然后进行比较:

if(currentGameState == GameState.Playing)
{
      // Play logic here
} 

谢谢,我会尽快尝试这个。 - Kielaen Pillay

4

要解决动画问题,只需使动画在未缩放的时间中播放即可。这样,即使 Time.timeScale 为 0,动画也会播放。您可以通过将动画师的更新模式设置为 Unscaled time 来实现此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接