2015-07-22 40 views
1

我創建克隆gameobject。我想摧毀。如果我想gameobject是「飛機」上的銷燬對撞機。但不工作,我想觸摸gameobject銷燬。Unity2D銷燬對撞機gameobject

void OnTriggerEnter2D (Collider2D ot) 
{ 
    if (ot.gameObject.tag == "plane") { 
     Destroy(ot.gameObject); 
    } 
} 

//創建克隆這個代碼

IEnumerator spawn() 
{ 
    timer -= Time.deltaTime; 
    for (int i = 0; i < 5; i++) 
    { 
     Instantiate(prefab, new Vector2 (((i+5)%15) , Random.Range(5,20)) , Quaternion.identity); 

     yield return new WaitForSeconds(0.30f); 
    } 
} 
+0

OnTriggerEnter2D被調用? –

回答

2

這些都是我的猜測: 1.您的遊戲對象沒有Rigidbody2D組件。您可能正在使用Rigidbody(不是Rigidbody2D)。 2.「飛機」的對撞機未設置爲「觸發器」。

請確保所有物理組件都是二維的:碰撞體是二維的,剛體是二維的。

+0

一切都有2D但不起作用。 –

+0

在你的OnTriggerEnter2D中,邏輯是:「如果一架飛機撞上你的遊戲物體,就摧毀那架飛機」。那是你要的嗎?從你的問題來看,邏輯應該是:「如果一架飛機撞到你的遊戲對象,就銷燬遊戲對象」。你應該改變:「Destroy(ot.gameObject);」到「Destroy(this.gameObject);」 請注意:您正在摧毀「飛機」,因此沒有可能發生碰撞的「飛機」。 –