Unity2d:SmoothDamp未移动到Lerp ed计算位置


travelTime = 0.0f;
while (Vector3.Distance(Vector2.Lerp(startPos, endPos, travelTime), transform.position) >= maxDistance) {
locationToGo = Vector2.Lerp(startPos, Input.mousePosition, travelTime);
travelTime += 0.1f;
}
// SHOW
// Smoothly move the camera towards that target position
transform.position = Vector3.SmoothDamp(transform.position, locationToGo, ref velocity, smoothTime);

因此,此代码旨在使用Lerp向鼠标指针返回一定数量的Vector2"步数"。然后将该值赋予SmoothDamp以将正方形移动到位置。但是Lerp计算不正确。有人知道哪里出了问题,或者有更好的工作选择吗?

由于我真的不知道你到底想实现什么,我只是猜测你想在每帧都将游戏对象移动到鼠标位置。你可以这样做(这是我想不出来的,不是可审计的(:

GameObject ourGameobject;
Vector3 ourTarget;
void Update() 
{
ourGameobject.transform.position = Vector3.lerp(ourGameobject.transform.position, ourTarget, Time.DeltaTime);
}

对于更快或更低的速度,只需将Time.DeltaTime与相乘

还要注意,Input.MousePosition返回屏幕上的坐标。

最新更新