如何修复Unity中使用Tile Palette时出现的Tilemap异常bug
问题描述
在Unity中新增场景并创建新的Tile Palette使用后,切回原有场景时出现以下异常:
- 原有旧Tile Palette被粉色方块覆盖
- 首个场景中的Tile全部被第二个场景Palette的内容替换
- 重启Unity后问题仍然存在,Tile持续显示为粉色无法正常使用
相关异常现象:
- Tile Palette面板异常
- 游戏内Tile被替换异常
修复步骤
1. 修复丢失的材质/资源引用
粉色显示说明Tile关联的材质或Sprite引用丢失,优先做以下排查:
- 选中首个场景的Tilemap对象,检查Inspector中
Tilemap Renderer组件的Material字段,若为空或指向错误材质,重新指定项目中Tile对应的正确材质即可。 - 打开
Window > 2D > Tile Palette,切换到旧版Tile Palette,检查面板内的Tile资源,若显示为Missing,重新关联对应Sprite资源。
2. 修复资源引用串位问题
跨场景创建Palette出现内容替换,基本是Palette资源的GUID冲突或存储路径错误导致:
- 后续创建新Tile Palette时,不要选择存储到当前场景内,统一将Palette资源存储到Project窗口的公共资源文件夹中,避免切场景时资源被覆盖。
- 不同场景使用的Palette不要复用同一个资源文件,新场景要用Palette时,右键原有Palette选择
Duplicate复制独立副本后再修改,避免同一份资源被多个场景修改覆盖。
3. 批量修复已损坏的Tile引用
- 选中首个场景中显示异常的Tilemap,右键选择
2D > Tiles > Refresh Tile and Sprite References,Unity会自动尝试重新匹配Tile关联的Sprite资源。 - 若上述操作无效,打开Tile Palette面板切换到旧Palette,点击面板右上角菜单选择
Replace Tiles,批量将丢失引用的Tile替换为正确的资源。
4. 清除缓存修复顽固问题
如果以上操作都无效,删除项目根目录下的Library文件夹后重启Unity,Unity会自动重新构建所有资源的索引和引用关系,解决大部分资源GUID冲突导致的异常。
注意事项
- 所有Tile、Palette资源必须存储在Project窗口的公共目录,不要存储在单个场景内部,避免切场景时资源被卸载或覆盖。
- 不同用途的Palette不要重名,分文件夹存储,避免Unity识别时出现资源匹配错误。
内容的提问来源于stack exchange,提问作者user14046024
相关产品推荐
相关产品推荐

