C# Unity2D销毁对撞机游戏对象

C# Unity2D销毁对撞机游戏对象,c#,unity3d,unityscript,C#,Unity3d,Unityscript,我创建克隆游戏对象。我想毁灭。如果我想游戏的对象是摧毁“飞机”上的对撞机。但不工作。我想触摸游戏对象 void OnTriggerEnter2D (Collider2D ot ) { if (ot.gameObject.tag == "plane") { Destroy(ot.gameObject); } } //创建并克隆此代码 IEnumerator spawn() { timer -= Time.deltaTime; for (in

我创建克隆游戏对象。我想毁灭。如果我想游戏的对象是摧毁“飞机”上的对撞机。但不工作。我想触摸游戏对象

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); 
    }
}
IEnumerator spawn()
{
timer-=Time.deltaTime;
对于(int i=0;i<5;i++)
{
实例化(预置,新向量2(((i+5)%15),随机范围(5,20)),四元数标识);
收益率返回新的WaitForSeconds(0.30f);
}
}
以下是我的猜测: 1.您的游戏对象没有Rigidbody2D组件。您可能正在使用刚体(而不是刚体2d)。 2.“plane”的对撞机未设置为触发器


请确保所有物理组件都是二维的:碰撞器是二维的,刚体是二维的。

在你的OnTriggerInter2D中,逻辑是:“如果一架飞机撞到你的游戏对象,摧毁那架飞机”。这就是你想要的吗?从你的问题来看,逻辑应该是:“如果一架飞机撞上你的游戏物体,摧毁游戏物体”。您应该将“销毁(ot.gameObject);”更改为“销毁(this.gameObject);”注意:您正在销毁“平面”,因此将不存在要碰撞的“平面”。是否调用OnTriggerEnter2D?