【发布时间】:2014-12-14 11:16:37
【问题描述】:
我在 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
敌人游戏对象的屏幕截图: http://i.stack.imgur.com/9R5a6.jpg
所以一般来说它有时有效,但有时无效。当我对敌人禁用球体对撞机时,一切正常,但我需要它来检查范围内是否有玩家。我该如何解决?
【问题讨论】:
-
你在用
transform移动武器吗?Transform立即移动GameObject并且不影响碰撞。 -
我使用动画移动它(我旋转玩家的手)。我认为这与移动无关,而是与敌人相连的两个对撞机。