是否可以减去Vector2

时间:2015-12-15 18:21:08

标签: c# unity3d-2dtools

在Unity的2D游戏中,我试图略微改变球与物体碰撞时的速度,具体取决于它已经进入的方向。

为了找到球的行进方向,我一直在使用

public Vector2 ballDirection;
public Vector2 lastPosition; 

void OnCollisionEnter2D(Collision2D boing)
{
    ballDirection = transform.position - lastPosition;
    lastPosition = transform.position;
}

然而,这会引发错误读取

Error CS0034 Operator '-' is ambiguous on operands of type 'Vector3' and 'Vector2'

球和任何物体之间的碰撞打印为UnityEngine.Vector3

确实可以减去Vector2,还是能够以某种方式将碰撞类型更改为Vector2?

1 个答案:

答案 0 :(得分:2)

我认为您可以简单地将Vector3变量转换为Vector2(z被丢弃)

((Vector2)transform.position) - lastPosition;

Vector2变量Vector3(z设置为零):

transform.position - ((Vector3)lastPosition);

请你检查它是否适合你?