2015-09-14 34 views
0

我已經在我的Awake方法如下:忽略默認的對撞機,但沒有觸發撞機

void Awake() { 
    Physics2D.IgnoreLayerCollision(LayerMask.NameToLayer("Player"), LayerMask.NameToLayer("Weapon")); 
} 

上的對象,我有兩個對撞機,其中一個是一個觸發器,另一個是默認的對撞機。我想要做的是讓我的玩家圖層忽略我的武器default collider,但不能忽略武器trigger collider

有沒有很好的方法來做到這一點?因爲我的上面的代碼使它忽略了兩個對撞機。

回答

0

我認爲你可以在你的OnCollisionEnter函數中手動忽略它,這是一個更簡單的方法。

void OnCollisionEnter2D (Collider2D other) 
{ 
    //ignore collider of Player 
    if(!other.transform.name.Equals("Player") 
    { 
     //do something here 
    } 

} 

void OnTriggerEnter2D (Collider2D other) 
{ 
    // Don't ignore trigger of Player 

    //do something here 
} 
+0

我很確定這不起作用。 –

+0

爲什麼?這不會工作不足以改善答案 – Cenkisabi

0

我認爲如果您禁用這兩層之間的衝突,則會禁用所有內容。我現在不能測試這個,但是你有沒有嘗試過創建一個立方體,讓它觸發並命名圖層「TriggerLayer」,當然,將立方體拖到wepon,這樣它就像它的孩子一樣。他們將在同一父母,但有不同的層次。林不知道這是否工作,或者如果這是一個很好的解決方案,但試試看。