2015-12-15 128 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

相關問題