Unity3d 统一性:基本二维刚体不';无法检测碰撞
在玩Unity引擎时,我尝试在游戏中添加一个基本的碰撞检测。我已经创建了两个简单的对象,它们都朝着不同的方向移动,相互靠近(所以它们会碰撞)。在OnCollisionInter2D(Collision2D col)方法中,我放置了一个Debug.Log()来测试冲突是否有效 我遵循官方统一频道的教程,并按照提供的确切步骤进行操作。但它仍然不起作用!我读了谷歌上几乎每一篇文章都有同样的问题,但仍然没有找到任何解决办法 我试了什么Unity3d 统一性:基本二维刚体不';无法检测碰撞,unity3d,2d,sprite,collision,Unity3d,2d,Sprite,Collision,在玩Unity引擎时,我尝试在游戏中添加一个基本的碰撞检测。我已经创建了两个简单的对象,它们都朝着不同的方向移动,相互靠近(所以它们会碰撞)。在OnCollisionInter2D(Collision2D col)方法中,我放置了一个Debug.Log()来测试冲突是否有效 我遵循官方统一频道的教程,并按照提供的确切步骤进行操作。但它仍然不起作用!我读了谷歌上几乎每一篇文章都有同样的问题,但仍然没有找到任何解决办法 我试了什么 两个对象的Z位置都设置为0 这两个对象都有一个RigidBody2
- 两个对象的Z位置都设置为0
- 这两个对象都有一个RigidBody2D和一个BoxCollizedR2D
- 对象移动不太快,移动非常慢(用于测试) (我读到过,如果它们移动得太快,以至于在帧之间相互穿过,则不会检测到碰撞)
- 两个触发碰撞器不能碰撞-一个必须是常规碰撞器(应用于此)
- 对象在同一层上,我检查了2D物理设置,并确保所有层都可以相互交互
- 我所有的碰撞器和刚体都是2D变体(这是我在互联网上读得最多的解决方案,但没有为我修复!)
尝试将
体型更改为Kinemetic
并使用Debug.Log()
用于OnCollisionExit2D
以及OnCollisionStay2D
尝试将BodyType
更改为Kinemetic
使用Debug.Log()
进行OnCollisionExit2D
以及OnCollisionStay2D
BodyType Kinemetic完成了这项工作!谢谢你的快速回答!请将OnCollisionExit2D
和OnCollisionStay2D
包含在我们的代码和Debug
中,并让我知道Kinemetic完成了这项工作。非常感谢。有一件事,如果游戏对象是基于地面的(我知道怎么称呼它们),你想检查它们是否在地面上,它们会使用这三种方法,这会给你最好的结果谢谢你的信息,我会看一看。BodyType Kinemetic做到了!谢谢你的快速回答!请将OnCollisionExit2D
和OnCollisionStay2D
包含在我们的代码和Debug
中,并让我知道Kinemetic完成了这项工作。非常感谢。有一件事,如果游戏对象是基于地面的(我知道怎么称呼它们),你想检查它们是否在地面上,它们会使用这三种方法,这会给你最好的结果。谢谢你的信息,我会看一看。