我尝试使用OnCollisionExit,但它没有检测到另一个对象的框collider 2D被禁用(当我禁用其他对象框碰撞器 2D 时,它没有检测到它停止碰撞)。collider我需要禁用其他对象,因为我将其用作拳击的范围指示器,并且我不希望它与其他对象交互(例如:玩家用范围指示器推开敌人)。我可以使用其他方法吗?private void OnCollisionEnter2D(Collision2D collision){ if (collision.collider.tag == "PunchRange") { Player.GetComponent<Fight>().PunchInRange = true; } if (collision.collider.tag == "KickRange") { Player.GetComponent<Fight>().KickInRange = true; }}private void OnCollisionExit2D(Collision2D collision){ if (collision.collider.tag == "PunchRange") { Player.GetComponent<Fight>().PunchInRange = false; } if (collision.collider.tag == "KickRange") { Player.GetComponent<Fight>().KickInRange = false; }}我希望它能够检测到它不与对象碰撞,即使对象的框collider 2D被禁用。
1 回答
弑天下
TA贡献1818条经验 获得超8个赞
你必须重新组织你的介绍,因为它太复杂了,我不知道你到底想要什么。
要检测碰撞或缺少碰撞,您必须使用碰撞器(也许放置额外的碰撞器但作为触发器)。然而我的理解是你想用它们作为触发器。在 Collider2D 组件上,您可以设置 isTrigger 值。设置它会使碰撞器仍然工作,但物理上不工作(其他碰撞器可以通过它)。
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报
0/150
提交
取消