【问题标题】:Unity - Collision detection within a collision detectionUnity - 碰撞检测中的碰撞检测
【发布时间】:2019-04-03 15:44:48
【问题描述】:

我正在用方块射击球,有 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();

    }
}

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

【问题讨论】:

    标签: c# visual-studio unity3d


    【解决方案1】:

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

    一旦你有了它,从this 获取游戏对象的标签就足够了:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      相关资源
      最近更新 更多