Unity 之 Vector3 .Lerp

mac2025-09-03  6

定义

public static Vector3 Lerp(Vector3 a, Vector3 b, float t);

a为起始位置,b未终止位置,t为a到b之间的插值()

返回值为a + (b - a) * t

描述

Linearly interpolates between two vectors.

Interpolates between the vectors a and b by the interpolant t. The parameter t is clamped to the range [0, 1]. This is most commonly used to find a point some fraction of the way along a line between two endpoints (e.g. to move an object gradually between those points). When t = 0 returns a. When t = 1 returns b. When t = 0.5 returns the point midway between a and b.

注意

为防止在Update()方法中调用Vector3.Lerp(),游戏对象在从a向b移动的过程中越走越慢,最后无限接近b,可令

t = 1 / Vector3.Distance(a , b) * Time.deltaTime

 

若涉及速度和时间

a--->b ,开始时间startTime,当前时间Time.time,速度始终为speed,则

t = (Time.time - startTime) * speed / Vector3.Distance(a,b)

 

最新回复(0)