2014-03-01 21 views
0

在Unity 4.3,2D模式和C#中工作。我有一個球員控制圈與圓形對撞機和不規則形狀的靜態邊緣對撞機。邊緣對撞機處於觸發模式。如何確定圓形對撞機是通過邊緣對撞機觸發還是在碰撞期間迴轉?

圓圈一旦完全通過邊緣對撞機就應該以某種方式作出反應,但是如果它與它碰撞並且回到它來自的相同方向,則該圓形不應該發生反應。該圓應該能夠隨機旋轉並以任意速度從任何方向或角度越過邊緣對撞機。

我正在嘗試使用OnTriggerExit2D,但是我一直無法檢查圓圈是通過還是回頭,因爲OnTriggerExit2D是在兩種情況下都啓動的。這是一張澄清:

Circle Edge

由於提前,這已被我發瘋了這幾天。

+0

歡迎來到Stack Overflow!請不要包含關於問題標題中使用的語言的信息,除非在沒有它的情況下沒有意義。標籤用於此目的。 –

回答

0

也許您可以在OnTriggerEnter2D中記錄對象的位置,然後將其與OnTriggerExit2D中的當前位置進行比較。然後使用Physics2D.Linecast來確定這些點之間是否存在碰撞 - 如果是,則通過。請注意,如果您的邊緣碰撞形狀非常複雜,並且對象通常沿着邊緣移動而不是穿過邊緣,則此功能可能無法可靠工作。

+0

Kiitti Arttu,不知道這個linecast。我的遊戲是一個改變重力的物理難題,邊緣對撞機作爲地面的連續對撞機工作 - 所以它非常複雜。我現在有一個可用的MacGyver解決方案,我會很快發佈。 – user3366979