我对如何使用vector3.Lerp()感到非常困惑
我试图随着时间将对象从A点移到B点。
Vector3 goal = Vector3.Lerp(object.position, player.Position, 5000);
NAPI.Entity.SetEntityPosition(object.handle, goal);
我不确定Lerp中的最后一个参数是什么,如果是“时间”还是“距离”。无论我放在那儿,它总是立即将游戏对象从A传送到B。我不使用UnityEngine,这是游戏的MOD。 因此无法使用time.DeltaTime或transform这样的功能。
目标是尝试找出如何在设定的时间内从A移到B。例如,在5秒的时间内将对象从A移到B,而不是立即移动。
答案 0 :(得分:0)
我不确定Lerp中的最后一个参数代表什么
在这种情况下,the documentation几乎总是第一个出现的地方。在这种情况下,我们将获得以下信息:
当t = 0时返回a。当t = 1时返回b。当t = 0.5时,返回a和b之间的中间点。
请记住,这不仅会运行一次。您不能只调用方法并让它为您处理整个动画。您必须重绘场景多次,每次都在其中计算新位置。在每次新绘制时,请考虑自动画开始以来经过了多少时间(t
)以及您希望整个动画花费多少时间(T
),并使用比率{{1} }作为您的论点。
答案 1 :(得分:0)
DeltaTime通常用在最后一个号码中...基本上是您要移动每个电话的金额(一路一直) 所以... 0.016将使它每秒花费约1秒,每秒更新60次