2015-11-28 132 views
1

我被困在這個球體上有一個CircleCollider2D和矩形有一個BoxCollider2D我增加了BoxCollider的偏移量。但爲什麼球體不會與其邊界相撞。球體進入球體,然後碰撞就像這樣。
enter image description here物體沒有與邊界碰撞

我希望當球體碰到它的邊界時它會發生碰撞。我還會檢查默認半徑,但會出現相同的情況。當衝突發生時

回答

1

觸發

的腳本系統可以檢測並啓動使用OnCollisionEnter功能的操作。但是,您也可以使用物理引擎來簡單檢測一個碰撞器何時進入另一個碰撞器的空間而不會產生碰撞。配置爲觸發器的對撞機(使用Is觸發器屬性)不具有固體對象的作用,並且僅允許其他碰撞器通過。當碰撞器進入其空間時,觸發器將在觸發器對象的腳本上調用OnTriggerEnter函數。 http://docs.unity3d.com/Manual/CollidersOverview.html

您需要關閉isTrigger並使用OnCollisionEnter(...)。

例如,這是我的木材腳本(下面)。較小的木材將會下降。 enter image description here

這是我的比賽 enter image description here

如果我設置isTrigger選項真,onCollisionEnter2D功能不工作的開始。我需要isTriggerEnter()方法。它穿過我的木頭層。 enter image description here

但是,如果我設置isTrigger false onCollisionEnter2D將工作。它會留在我的木頭層上。 enter image description here

+0

能否請您做與您的自定義腳本只是舉例 –

+0

感謝我理解你的example.just一件事可以請你告訴我,在2D遊戲,爲什麼Vector2'和'Vector3'之間'簡單的話,我們的區別當我看到統一官方網站作爲參考指南時,使用這個'Math.Lerp','Math.Clamp'我不明白他們在說什麼 –

+0

假設你有邊界。你希望你的遊戲對象的x位置在-4和4之間,你使用math.clamp。如果你的遊戲對象試圖移動-5這個函數將使其位置-4。萊普是關於比例。再次假設您的值在1 - 100之間。您希望在這些數字之間有不同的值。如果你設置t = 7,你會得到70.設置2會給你20.鉗位限制了一些東西,lerp得到了一個極限值@ ZainKhan –