首页 文章

Unity OnTriggerEnter2D有时不起作用

提问于
浏览
1

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

  • 一个是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 回答

  • 3

    你应该在OnEnterCollider2D中确定两件事

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

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

相关问题