Unity 瓦片地图工坊
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/unity-tilemap-2d-804l。
技能介绍
要解决的具体问题
在 Unity 中搭建 2D 关卡时,常见痛点包括:手工放置每个瓦片变体耗时且容易出错;每个瓦片单独碰撞体导致性能下降和接缝问题;世界坐标与单元格坐标混淆导致逻辑错误;多层 Tilemap 排序混乱导致渲染层级错误;Rule/Animated Tiles 在脚本编辑后不刷新导致显示问题。
技能如何工作
这个技能通过以下方式解决上述问题:
- Grid + Tilemap 系统:创建 Grid 和多个 Tilemap 子对象,支持背景、地面、前景等分层,并可设置每个 TilemapRenderer 的排序属性。
- Tile Palette 工具:通过
Window → 2D → Tile Palette导入切片后的精灵表,生成 Tile 资产并使用画笔工具进行绘制。 - 碰撞体优化:在固体层添加
TilemapCollider2D,配合CompositeCollider2D和静态Rigidbody2D,启用Used By Composite实现单个合并碰撞体,消除接缝并提升性能。 - Rule Tiles 自动贴图:使用 2D Tilemap Extras 包中的
RuleTile,根据边缘和角落自动选择正确的精灵,避免手工放置每个变体。 - 运行时脚本编辑:通过
Vector3Int单元格坐标操作 Tilemap,支持SetTile、GetTile、SetTilesBlock等方法,并利用WorldToCell/CellToWorld进行坐标转换。 - 验证流程:在 Play 模式下检查碰撞体、排序顺序和批量编辑后的刷新操作。
适用边界与注意点
- 不适用于关卡设计实践(如节奏、布局原则),请参考 level-design 技能。
- 不适用于 3D 瓦片/网格放置,Unity 原生 3D 工具(ProBuilder/网格画笔)更合适。
- 不适用于平台游戏角色移动,请使用 platformer 或 unity-physics 技能。
RuleTile类型未找到时,需通过 Package Manager 安装com.unity.2d.tilemap.extras包。- 每个瓦片单独碰撞体性能差,必须使用
CompositeCollider2D合并。 - 世界坐标与单元格坐标易混淆,务必使用
WorldToCell/CellToWorld转换。 - 多层 Tilemap 需显式设置
Sorting Layer和Order in Layer,避免渲染层级错误。 - Rule/Animated Tiles 脚本编辑后需刷新,少量修改用
RefreshTile(cell),整图重建才用RefreshAllTiles()。
使用场景
- 在Unity 6中创建Grid+Tilemap结构,分层绘制2D关卡的背景、地面和前景元素
- 为2D关卡的固体层添加TilemapCollider2D与CompositeCollider2D,合并碰撞体以提升性能并消除接缝
- 使用Rule Tiles自动匹配边缘和角落的瓦片变体,避免手工放置每个瓦片的繁琐操作
- 通过SetTile/SetTilesBlock等API在运行时修改瓦片地图,实现程序化关卡生成或动态编辑
适合人员
- Unity 2D游戏开发者需要快速搭建关卡布局和碰撞体
- 技术美术需要优化瓦片渲染层级和碰撞体性能
- 关卡设计师需要通过Rule Tiles加速2D瓦片关卡迭代