我需要将以下代码从使用 lerp 转换为使用立方缓动,但我不知道如何处理函数中立方缓动返回的浮点值,因为我使用的是 Vector3 而不是 float 。有人可以给我提示吗?
if (Vector3.Distance(activeTween.Target.position, activeTween.EndPos) > 0.1f)
{
float fraction = (Time.time - activeTween.StartTime) / activeTween.Duration;
activeTween.Target.position = Vector3.Lerp(activeTween.StartPos, activeTween.EndPos, fraction);
}
最佳答案
您可能应该使用它来代替 Vector3.Lerp
中的分数
。
Lerp 只是向量的线性插值,即 0.3 表示来自一个向量的 30%,来自另一个向量的 70%。如果我们想要非线性插值,我们可以对输入值应用一些任意函数。例如,0.3 可以转换为 0.027,然后可以用作 Lerp 的输入以获得 2.7%/97.3% 混合。
关于c# - 如何将 lerp 转换为三次缓动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69218519/