2015-12-15 87 views
1

我试图在Unity中的2D游戏中稍微改变一个球的速度,因为它与物体相撞,具体取决于它已经穿过的方向。是否有可能减去一个Vector2

在其中找到球行进的方向,我一直在使用

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

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

​​

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

transform.position - ((Vector3)lastPosition); 

莫非你请检查它是否适合你?

+0

第一段代码完美工作。谢谢你,我一直在努力尝试一切,并且为了一个答案而绞尽脑汁。它的接缝如此明显,以至于transform.position以Vector3开始。我只是假设将ballDirection设置为Vector2意味着任何变换命令都将是Vector2。 – Connarhea

相关问题