我在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 回答
你应该在OnEnterCollider2D中确定两件事
1)确保不得销毁参与OnEnterCollider2D的两个游戏对象 . 如果一个人必须被摧毁,那么它应该在一段时间后销毁 .
2)确保参与碰撞的游戏对象之一必须与未选中的isKinematic附加刚体 .