【发布时间】:2019-08-15 11:33:58
【问题描述】:
我创建了一个简单的 lerp 动画,它使用以下代码将对象从一个地方移动到另一个地方:
public IEnumerator Move(Vector3 position, Transform transform, float animationTime = 1)
{
float timePassed = 0;
transform.position = Vector3.Lerp(startPos, position, timePassed /animationTime);
timePassed += Time.deltaTime;
yield return null;
}
我从另一个脚本中调用它。
但我希望它在动画之后做点什么。如果我创建一个Coroutine 并使用yield return WaitForSeconds(animationTime);
Coroutine 在动画之前结束,它会导致错误。
我也尝试创建变量来计算经过的时间(就像在动画中一样),但无济于事……
我做错了什么¿
编辑: 我无法更改 Move 函数,因为它在其他类中使用,我想让它尽可能通用
【问题讨论】:
-
你的方法
Move是void类型而不是IEnumerator类型,所以现在这个方法不被认为是统一的协程 -
哦,我的错,我是用手机写的,所以很难检查。我现在就修复它