微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 OnCollisionExit2D() 上检测我从对象的哪一侧退出

如何解决如何在 OnCollisionExit2D() 上检测我从对象的哪一侧退出

我可以检测到我与物体的哪一侧发生碰撞,但是当我退出碰撞时我需要重置一些变量。如何判断我从物体的哪一侧退出? (即,如果我与地面相撞,然后我与左侧的墙壁相撞,然后向右移动,我需要知道我是从与墙壁的碰撞中退出还是从与地面的碰撞中退出。)>

注意我碰撞的块是墙壁和地面,所以我不能使用层名称等。

解决方法

1.

我真的很难理解这个问题,但一个常见的技巧是你实际上在对象上有多个对撞机

说它是一个立方体。

实际上有六个对撞机而不是一个立方体形状的对撞机!

(所以,基本上是扁平的,无论你想使用什么技术。)

根据您的情况,您可以确切地知道是什么与什么发生了碰撞。

我真的不明白这个问题,但我想你想知道,在六个中,哪个是“最后一个”触及。

当然,作为基本的编程问题,这很容易实现,只需弄清楚最后触及六个中的哪一个

2.

请注意,正如 BugFinder 所解释的那样。当你“离开”时,只需看看你的新速度,也就是说看看你的速度方向。

显然,这会立即告诉您另一个物体的“哪个部分”,您一定是弹开了。

还要注意的是,您确实可以简单地从新的速度向后投掷,然后看看您击中了什么——这很可能是让您反弹的原因!

--

请注意,PhysX 可以将事物整合到同一帧中,当您在角落时“最后触及”的想法可能有问题。这就是为什么“2”是一种常见的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。