Unity 3D第三人称模板碰撞失效求助(2021.3.29f1版本)
Unity碰撞检测失效排查方案
结合你提供的信息和Unity第三人称模板的特性,碰撞功能失效通常是以下几个配置问题导致,逐一排查:
碰撞组件配置错误
- 玩家对象必须同时具备Collider(如CapsuleCollider)和Rigidbody组件:Collider不能勾选
Is Trigger,Rigidbody不能勾选Is Kinematic(否则不会触发物理碰撞事件)。 - 敌人/熔岩对象必须具备Collider组件,且不能勾选
Is Trigger;如果是动态敌人,还需要添加Rigidbody组件(静态物体可省略)。
- 玩家对象必须同时具备Collider(如CapsuleCollider)和Rigidbody组件:Collider不能勾选
标签匹配问题
- 确认敌人/熔岩对象的标签确实是
enemy,Unity标签区分大小写,注意不要拼写错误(比如写成Enemy或enemies)。
- 确认敌人/熔岩对象的标签确实是
脚本挂载位置错误
- 确保Death脚本挂载在带有Collider组件的玩家对象/子对象上,只有碰撞发生的Collider所在对象(或其父对象)才能接收到
OnCollisionEnter事件。
- 确保Death脚本挂载在带有Collider组件的玩家对象/子对象上,只有碰撞发生的Collider所在对象(或其父对象)才能接收到
层碰撞矩阵限制
- 打开
Edit > Project Settings > Physics,检查玩家所在层与敌人/熔岩所在层的碰撞矩阵是否被禁用,确保对应格子处于勾选状态。
- 打开
函数签名或逻辑问题
- 虽然你的代码签名正确,但可以临时修改测试:移除标签判断,直接在
OnCollisionEnter内打印Debug.Log("碰撞触发:" + col.gameObject.name),验证是否能接收到碰撞事件,再排查标签匹配问题。
- 虽然你的代码签名正确,但可以临时修改测试:移除标签判断,直接在
内容的提问来源于stack exchange,提问作者frigidus
相关产品推荐
相关产品推荐

