Unity:基本 2D 刚体不检测碰撞
Unity: Basic 2D rigidbody doesn't detect collisions
在玩 Unity 引擎时,我尝试在我的游戏中添加基本的碰撞检测。我创建了两个简单的对象,它们都朝不同的方向移动,彼此相向(因此它们会发生碰撞)。在 OnCollisionEnter2D(Collision2D col) 方法中,我放置了一个 Debug.Log() 来测试碰撞是否有效。
我遵循了 Unity 官方频道的教程,并按照提供的确切步骤进行操作。但是还是不行!我几乎阅读了 Google 上所有 post 的文章,但仍然没有找到任何解决方案
我尝试了什么?
- 两个对象的 Z 位置都设置为 0。
- 两个对象都有一个 RigidBody2D 和一个 BoxCollider2D
- 对象不是移动得太快,而是移动得很慢(用于测试)
(我读到如果它们移动得如此之快以至于它们在帧之间相互穿过,则不会检测到碰撞)
- 两个触发对撞机不能碰撞 - 一个必须是常规对撞机(应用此)
- 对象在同一层上,我检查了 2D 物理设置并确保所有层都可以相互交互。
- 我所有的碰撞器和刚体都是 2D 变体(这是我在互联网上阅读最多的解决方案,但没有为我修复它!)
这是我想要碰撞的游戏对象的两个屏幕截图。 (抱歉无法 post 图片,因为我的声誉太低)
尝试将 BodyType
更改为 Kinemetic
并使用 Debug.Log()
作为 OnCollisionExit2D
以及 OnCollisionStay2D
在玩 Unity 引擎时,我尝试在我的游戏中添加基本的碰撞检测。我创建了两个简单的对象,它们都朝不同的方向移动,彼此相向(因此它们会发生碰撞)。在 OnCollisionEnter2D(Collision2D col) 方法中,我放置了一个 Debug.Log() 来测试碰撞是否有效。
我遵循了 Unity 官方频道的教程,并按照提供的确切步骤进行操作。但是还是不行!我几乎阅读了 Google 上所有 post 的文章,但仍然没有找到任何解决方案
我尝试了什么?
- 两个对象的 Z 位置都设置为 0。
- 两个对象都有一个 RigidBody2D 和一个 BoxCollider2D
- 对象不是移动得太快,而是移动得很慢(用于测试) (我读到如果它们移动得如此之快以至于它们在帧之间相互穿过,则不会检测到碰撞)
- 两个触发对撞机不能碰撞 - 一个必须是常规对撞机(应用此)
- 对象在同一层上,我检查了 2D 物理设置并确保所有层都可以相互交互。
- 我所有的碰撞器和刚体都是 2D 变体(这是我在互联网上阅读最多的解决方案,但没有为我修复它!)
这是我想要碰撞的游戏对象的两个屏幕截图。 (抱歉无法 post 图片,因为我的声誉太低)
尝试将 BodyType
更改为 Kinemetic
并使用 Debug.Log()
作为 OnCollisionExit2D
以及 OnCollisionStay2D