Unity OnTriggerEnter2D有时不起作用

时间:2014-10-19 09:48:38

标签: unity3d unity3d-2dtools

我在Unity的2D游戏中遇到触发器问题。当他用玩家的武器触发时,我想让敌人死去。问题是敌人附有两个碰撞器(标记为#34; Enemy"):

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

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

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

所以一般来说它有时会起作用,但有时候并不起作用。当我禁用敌人的球对撞机时,一切都很好,但是我需要让它来检查是否有范围内的球员。我该如何解决?

1 个答案:

答案 0 :(得分:3)

你应该确定OnEnterCollider2D中的两件事

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

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