我有一个带有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;
}
答案 0 :(得分:4)
这不起作用的原因是因为您没有正确使用Lerp。这就是线性插值(Lerp)数学的工作原理:
假设我们有一个点(0, 0)
和一个点(1, 1)
。为了在点之间进行计算,我们提供从t
到0.0f
的{{1}}值。此1.0f
表示两点之间的比率(t
为0.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
}