我正在尝试使用 timeScale 将 Unity 中的游戏暂停,当暂停面板出现时将其设置为 0,并在禁用该面板时将其设置回 1。我的问题是当我暂停时,面板上的按钮没有显示它们的动画,因为时间刻度为 0。有没有其他方法解决这个问题?或者应该找到另一种不使用 timeScale 的暂停方式?
我正在尝试使用 timeScale 将 Unity 中的游戏暂停,当暂停面板出现时将其设置为 0,并在禁用该面板时将其设置回 1。我的问题是当我暂停时,面板上的按钮没有显示它们的动画,因为时间刻度为 0。有没有其他方法解决这个问题?或者应该找到另一种不使用 timeScale 的暂停方式?
有一种可能性是使用Enum
来维护游戏的状态。例如,可以定义一个枚举:
enum GameState
{
Started,
Loading,
Playing,
Paused,
Completed
}
在您的会话或任何便于访问的地方声明一个GameState
类型的变量,然后进行比较:
if(currentGameState == GameState.Playing)
{
// Play logic here
}
要解决动画问题,只需使动画在未缩放的时间中播放即可。这样,即使 Time.timeScale 为 0,动画也会播放。您可以通过将动画师的更新模式设置为 Unscaled time 来实现此操作。