为了账号安全,请及时绑定邮箱和手机立即绑定

如果不使用 c# unity 中的 OnCollisionExit ,我如何知道一个对象没有与另一个

如果不使用 c# unity 中的 OnCollisionExit ,我如何知道一个对象没有与另一个

C#
MM们 2023-09-24 11:07:29
我尝试使用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 值。设置它会使碰撞器仍然工作,但物理上不工作(其他碰撞器可以通过它)。


查看完整回答
反对 回复 2023-09-24
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信