Unity 2D碰撞体无碰撞问题求助(2022.3.11f1 URP项目)
Tilemap与对象无碰撞问题解决方案
必查配置项
- 给Tilemap挂载
Tilemap Collider 2D,若使用不规则Tile,需额外添加Composite Collider 2D,并在Tilemap Collider 2D面板勾选「Used By Composite」,Composite Collider 2D的「Geometry Type」设为「Outlines」。 - 打开Tile Palette选中目标Tile,在Inspector面板确认「Collider Type」为「Sprite」或「Grid」,若设为「None」则无碰撞。
- 进入
Edit > Project Settings > Physics 2D,检查Tilemap所在Layer与Player所在Layer的碰撞矩阵是否勾选了相互碰撞。 - 验证Player组件:确保带有
Box Collider 2D/Capsule Collider 2D且「Is Trigger」未勾选,同时Rigidbody 2D的「Body Type」设为「Dynamic」,重力参数正常。
额外排查点
- 检查Tilemap的Position、Scale值是否正常(避免Scale为0等异常情况),确保碰撞体有效。
- URP渲染设置一般不影响物理碰撞,但若Tilemap渲染层级异常,可确认URP 2D Renderer中Tilemap的Render Layer配置无冲突。
参考资源
- Unity官方文档《Tilemap Collider 2D》章节,详细介绍Tile碰撞组件的配置逻辑。
- Unity Learn平台「2D Platformer」教程,包含完整的Tilemap场景碰撞搭建流程。
内容的提问来源于stack exchange,提问作者kiprokoala
相关产品推荐
相关产品推荐

