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?