如何更改动画在Unity脚本C#中运行所需的时间?

时间:2017-03-16 01:08:46

标签: c# animation unity3d

我有一个玩家,这是一个立方体,我希望它能够跳过#34;到选定的空对象位置。

我设法将播放器从vector3.MoveTowards()的原始位置移开,但同时我想播放动画,显示立方体如何跳转到空对象位置。

这里的问题是空对象位置会发生变化,因此从立方体到空对象的距离会有所不同。我相信我需要改变动画完成所需的时间,因此它会暂停,之后让立方体直线移动。

我希望动画可以花更长或更短的时间来运行,因为空对象的位置总是会改变......

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用StartCoroutine。

IEnumerator animated() {
        // Code here
        yield return new WaitUntil (() => stopanimated == true);
        // Run the code here
}

或者你可以

IEnumerator animated() {
        // Code here  
        yield return new WaitForSeconds (1); // How much second to wait before execute the next line code.
        // Run code here
}

如何调用它:

StartCoroutine(Animated());

详细文档中的协程:

https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html

此StartCoroutine用于在执行代码之前将代码暂停一段时间。

更改动画速度:

看这篇文章: http://answers.unity3d.com/questions/950205/how-to-change-speed-of-animation-in-c.html