Unity 2D 获取没有物理的碰撞事件

Unity 2D get the collision event without the physics

我在盒子上使用 collider 2D 并将其设置为触发以便我的玩家可以穿过它,当我将其设置为触发时它不再触发 OnCollisionEnter2D,有没有办法保持在不考虑物理引擎的情况下使用碰撞事件,如果没有,那么还有另一种方法可以实现吗? (我目前正在检查更新方法中的每一帧并计算距离但这似乎太重了)

还有一个名为 OnTriggerEnter2D 的函数,它可能正是您要找的。这应该在碰撞时触发,而不会引起物理交互。

如果将此 MonoBehaviour 添加到触发器和非触发器,您可以让 OnCollisionEnter2D 和 OnTriggerEnter2D 都调用单独的函数来处理碰撞。