Unity-碰撞检测中的碰撞检测

时间:2019-04-03 15:44:48

标签: c# visual-studio unity3d

我正在按方块射击球,并且有3个巨型方块使武器更坚固。在我的Mega Block 1上,如果从我拍摄的子弹球中检测到碰撞,请运行代码。很好现在,如果点击了Mega Block 1(tag = MegaBlock01),则执行一个代码,如果点击了Mega Block 2,依此类推。我想将此代码块放在每个Mega Block上,因此我不必为每个Mega Block编写新代码

public void OnTriggerEnter(Collider other)  // This code is on my Mega Blocks
{
    if (other.CompareTag("BulletBall"))  // The Ball has hit me
    {
       StartMegaWeapon01();

        // What I want is:  
        // If my tag is MegaBlock01, run StartMegaWeapon01();
        // If my tag is MegaBlock02, run StartMegaWeapon02();

    }
}

我想要在碰撞检测中进行碰撞检测。

1 个答案:

答案 0 :(得分:2)

自从调用OnTriggerEnter方法以来,您需要将子弹的对撞机检查为IsTrigger。两个碰撞对象中的至少一个还需要具有刚体,以便物理引擎可以正确计算碰撞。

打开一旦拥有了,从this获取gameObject的标签就足够了:

if (gameObject.tag == "MegaBlock01")
    StartMegaWeapon01();