是否可以减去 Vector2

Is it possible to subtract a Vector2

我正在尝试在 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?

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

((Vector2)transform.position) - lastPosition;

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

transform.position - ((Vector3)lastPosition);

能否请您检查一下它是否适合您?