我有一个关于 Lerp 的问题。所以我知道 lerp 可以帮助您移动对象,例如:
void update(){
transform.position = vector3.lerp(start.position,end.position, (Time.time / 1000));
}
这将使您的对象到达您的终点。但是如果你有这个代码:
void Update(){
transform.position = Vector3.Lerp(transform.position,
destination.position,
speed * 3.0f * Time.deltaTime);
}
您的对象怎么可能到达您的目的地,lerp 的第 3 个参数必须缓慢到达 1,以便您的对象到达您的目的地。但是 "speed" , "3.0" , "Time.deltaTime" 总是一样的,那么你的对象怎么可能到达你的目的地呢?
所以一个大问题:是否有可能用一些变量来做 lerp,这些变量总是具有相同的值和 Time.deltaTime?
现在,由于不同的评论等。我不确切知道 lerp 是如何工作的,我有可能:
1.)首先我认为它是这样工作的:
Vector3.lerp(a,b,c) c 值必须改变每一帧才能移动对象。如果 c 值为 0.2,则您的对象将移动 20%,如果 c 值不改变,则对象将始终移动 20%。因此,要使对象流畅地移动,您的 c 值必须在每一帧中稍微改变一下,这样您的 c 值将从 0 变为 1,您的对象从起点到目的地也是如此。
或者是这样的
2.)由于有几条评论,我认为 lerp 像这样工作
就像评论说的那样,c 值不必改变值,因为如果你有 c = 0.2,你将通过 20% 的方式和下一帧,如果 c 仍然是 0.2,你将通过剩余的 20%方式等等。
那么 lerp 是像 1 一样工作(你必须更改 c)还是像 2 一样工作(你不必更改 c)