在使用Vector3.Lerp协程内部时,我遇到了一个奇怪的问题,这是没有意义的,因为我的游戏中有很多协程,而且它们都运行良好。
我只是想通过调用协程和简单地更改对象的位置将对象从起始高度移动到最终高度。InVolo()Vector3.Lerp
float elapsedTime = 0f;
while (elapsedTime < TempoSalita)
{
transform.position = Vector3.Lerp(transform.position,
new Vector3(transform.position.x, maxHight, transform.position.z), (elapsedTime / TempoSalita));
elapsedTime += Time.deltaTime;
yield return null;
}
transform.position = new Vector3(transform.position.x, maxHight, transform.position.z);
yield return null;
Run Code Online (Sandbox Code Playgroud)
该maxHight仅仅是4F和TempoSalita为2F。协程在OnTriggerEnter 中启动并且工作正常,对象到达 y 4f 并在 2 秒内退出 while。
基本上,应该在 2 秒后elapsedTime / TempoSalita变为1,但是对象在 0.3 秒后到达结束位置,当elapsed/TempoSalita是 0.2 时,这对我来说毫无意义。Vector3.Lerp 应该在t值从 …