【问题标题】:Simple 2-step animation using Unity's Animation Tool使用 Unity 动画工具的简单 2 步动画
【发布时间】:2015-05-29 05:57:20
【问题描述】:

我是 Unity/编码的新手,我正在尝试创建一个简单的两步动画,我可以在其中调整每一步的延迟时间。我的游戏中有一个电梯,它使用两个动画:“向上”和“向下”。

我正在使用枚举器来播放动画,这就是我目前所拥有的:

IEnumerator Go()
{
    while(true)
    {
        GetComponent<Animation>().Play ("Up");
        yield return new WaitForSeconds(delayTime);
        break;
        GetComponent<Animation>().Play ("Down");
        yield return new WaitForSeconds(delayTime);
        break;
    }
}

我知道我可以将整个动画制作成一个动作,但我希望能够即时调整延迟时间。我的目标是连续制作这两个动画。向上,然后向下。此刻我的电梯上升并停留在那里。我做错了什么?

感谢您的帮助!

【问题讨论】:

    标签: animation unity3d enumerator multi-step


    【解决方案1】:

    删除中断子句:

    IEnumerator Go()
    {
        while(true)
        {
            GetComponent<Animation>().Play ("Up");
            yield return new WaitForSeconds(delayTime);
            GetComponent<Animation>().Play ("Down");
            yield return new WaitForSeconds(delayTime);
        }
    }
    

    现在它应该循环两个动画。在原始代码中,break statements 导致执行跳出循环,因此,“Down”的Play 永远不会被调用并且函数的执行被终止。

    如果您希望电梯仅在您需要删除 while 循环时上下移动。

    【讨论】:

      猜你喜欢
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多