0

我是 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;
    }
}

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

谢谢您的帮助!

4

1 回答 1

0

删除中断子句:

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

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

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

于 2015-05-30T06:51:22.667 回答