统一暂停

时间:2015-07-30 07:57:05

标签: c# unity3d

我正在尝试使用timeScale暂停游戏,并在暂停面板启动时将其设置为0,并在禁用面板时将其设置为1。我遇到的问题是当我暂停时,面板上的按钮没有显示他们的动画,因为时间刻度为0.这周围有什么吗?或者我应该找到另一种方法来暂停而不使用时间刻度。任何帮助将不胜感激,谢谢。

3 个答案:

答案 0 :(得分:5)

可能是使用Enum维持游戏状态。例如,将枚举定义为:

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

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

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

答案 1 :(得分:2)

修复动画问题。只需让动画在非缩放时间播放即可。这样即使Time.timeScale为0,动画也会播放。您可以通过将动画制作的更新模式设置为非缩放时间来完成此操作。

答案 2 :(得分:2)

在Animator组件中查找更新模式选项,然后选择非缩放时间。像这样:

Use Unscaled Time as Update Mode