在IEnumerator中设置的动画触发器会导致动画卡住

时间:2018-06-22 19:53:30

标签: unity3d

private IEnumerator reviveCountdown() {

    timeLeft = 5;
    while (timeLeft >= 0) {
        reviveAnim.ResetTrigger ("AdReviveTrigger");
        reviveAnim.SetTrigger ("AdReviveTrigger");
        reviveCountdownText.text = timeLeft.ToString();
        yield return new WaitForSecondsRealtime(1.0f);
        timeLeft--;
    }
}

我正在使用上面的IEnumerator来显示一个从5倒数到0的计时器,并在每次倒计时时对文本进行动画处理。倒计时工作正常。我遇到的问题是动画已触发,但实际上从未播放,因为它卡在了动画状态,如下面的屏幕快照所示。它在整个5秒钟内都处于AdRevive状态,但是从不播放。从空闲状态的过渡是代码中设置的简单触发器。如果我在Unity编辑器中手动播放动画,该动画将起作用。有人知道为什么会卡住吗? enter image description here

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题。由于游戏在此动画期间暂停,因此Time.timeScale设置为0,因此它将永远不会播放。要修复,我将animationUpdateMode设置为UnscaledTime。