如何检测我从 OnCollisionExit2D() 退出的对象的哪一侧
How do I detect which side of the object I exited from on OnCollisionExit2D()
我可以检测到我与物体的哪一侧发生碰撞,但是我需要在退出碰撞时重置一些变量。如何判断我从对象的哪一侧退出? (即,如果我与地面发生碰撞,然后我与左侧的墙壁发生碰撞,然后向右移动,我需要知道我是否已经从与墙壁的碰撞中退出,或者我是否从与地面的碰撞中退出。)
请注意,我碰撞的方块既有墙也有地面,所以我不能使用图层名称等。
1.
我真的很难理解这个问题,但一个常见的技巧是你实际上在对象上有 多个碰撞器 。
说是立方体。
而不是有一个立方体形状的对撞机,实际上有六个对撞机!
(所以,基本上是扁平的,无论你想使用什么技术。)
根据你的情况,你会确切地知道什么与什么相撞。
我真的不明白这个问题,但我想你想知道,在六个中,哪个是“最后一个”被触及的。
当然,作为一个基本的编程问题,这很容易实现,只要弄清楚最后触摸了六个中的哪一个。†
2.
请注意,正如 BugFinder 所解释的那样。当你“离开”的时候,只看你的新速度,也就是看你速度的方向。
显然,这会立即告诉您另一个物体的“哪个部分”,您一定已经反弹了。
另请注意,您确实可以简单地从新速度向后投掷,然后看看您击中了什么 - 这很可能是您反弹的原因!
--
† 请注意,PhysX 可以将事物遮罩到同一帧中,当您在角落时“最后触摸”什么的想法可能会有问题。这就是为什么“2”是一种常见的方法。
我可以检测到我与物体的哪一侧发生碰撞,但是我需要在退出碰撞时重置一些变量。如何判断我从对象的哪一侧退出? (即,如果我与地面发生碰撞,然后我与左侧的墙壁发生碰撞,然后向右移动,我需要知道我是否已经从与墙壁的碰撞中退出,或者我是否从与地面的碰撞中退出。)
请注意,我碰撞的方块既有墙也有地面,所以我不能使用图层名称等。
1.
我真的很难理解这个问题,但一个常见的技巧是你实际上在对象上有 多个碰撞器 。
说是立方体。
而不是有一个立方体形状的对撞机,实际上有六个对撞机!
(所以,基本上是扁平的,无论你想使用什么技术。)
根据你的情况,你会确切地知道什么与什么相撞。
我真的不明白这个问题,但我想你想知道,在六个中,哪个是“最后一个”被触及的。
当然,作为一个基本的编程问题,这很容易实现,只要弄清楚最后触摸了六个中的哪一个。†
2.
请注意,正如 BugFinder 所解释的那样。当你“离开”的时候,只看你的新速度,也就是看你速度的方向。
显然,这会立即告诉您另一个物体的“哪个部分”,您一定已经反弹了。
另请注意,您确实可以简单地从新速度向后投掷,然后看看您击中了什么 - 这很可能是您反弹的原因!
--
† 请注意,PhysX 可以将事物遮罩到同一帧中,当您在角落时“最后触摸”什么的想法可能会有问题。这就是为什么“2”是一种常见的方法。