Vector3.Lerp不能在我的相机上工作

时间:2015-11-04 23:40:24

标签: c# android iphone unity3d

我有一个带有2d对撞机的立方体游戏对象,当有人击中相机应该是10个单位,但顺利,相机转到正确位置但没有阻尼。

public Transform target;
public float damping = 0.1f;

void OnTriggerEnter2D(Collider2D other)
{
    Vector3 newPoint = Vector3.Lerp(target.transform.position,
                                    target.transform.position + Vector3.up * 10.0f,
                                    damping);

    target.transform.position = newPoint;
}

2 个答案:

答案 0 :(得分:4)

这不起作用的原因是因为您没有正确使用Lerp。这就是线性插值(Lerp)数学的工作原理:

假设我们有一个点(0, 0)和一个点(1, 1)。为了在点之间进行计算,我们提供从t0.0f的{​​{1}}值。此1.0f表示两点之间的比率(t0.0f(0, 0)1.0f)。例如,(1, 1)的{​​{1}}值会产生点t

现在用一个不那么简单的例子来扩展它,考虑两点: 0.5f(0.5f, 0.5f)var a = Vector2(1.0f, -1.0f)的结果是var b = Vector2(0.0f, 1.0f),因为这是中途点。我们来回答Lerp(a, b, 0.5f)。给出答案的等式是Vector2(0.5f, 0.0f)。这来自对线性代数的基本理解,其中从彼此中减去两个点导致向量,并且向点添加向量给出另一个点。

好的,现在让这个代码实际上按照你想要的方式工作。您的脚本可能如下所示:

c

希望这有帮助!

答案 1 :(得分:0)

我在触发器上设置脚本,然后我添加一个游戏对象凸轮,然后我将相机拖动到脚本,并添加凸轮。在转换..为你的帮助! =)

公共类CameraUp:MonoBehaviour {

Example: 
    January 1 = 001
    January 2 = 002
    December 31 = 365 or 366

}