是否可以减去 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);
能否请您检查一下它是否适合您?
我正在尝试在 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);
能否请您检查一下它是否适合您?