1

我在 Unity 的 2D 游戏中遇到触发器问题。我想让敌人在他用玩家的武器触发时死亡。问题是有两个对撞机附加到敌人(标记为“敌人”):

  • 一个是box2d collider,用作普通对撞机
  • 第二个是球体对撞机,它被设置为触发器,在脚本中用于检查范围内是否有玩家

我得到了剑对象,它有精灵渲染器、盒子碰撞器(设置为触发器)和脚本:

void OnTriggerEnter2D(Collider2D other)
    {
        if(other.tag == "Enemy")
        {
            if(!other.isTrigger)
            {
                Debug.Log ("enemy");
                Destroy (other.gameObject);
            }
        }
    }

场景截图:http: //i.stack.imgur.com/eVtRX.jpg

Enemy gameObject 截图:http: //i.stack.imgur.com/9R5a6.jpg

所以一般来说它有时有效,但有时无效。当我对敌人禁用球体对撞机时,一切正常,但我需要它来检查范围内是否有玩家。我该如何解决?

4

1 回答 1

3

你应该确保在 OnEnterCollider2D 中有两件事

1) 确保参与 OnEnterCollider2D 的两个游戏对象都不能被破坏。如果一个必须被摧毁,那么它应该在一段时间后被摧毁。

2) 确保参与碰撞的游戏对象之一必须具有未选中 isKinematic 附加的刚体。

于 2014-11-05T13:39:00.787 回答