Cocos Creator 3.8.0 官方文档明确支持 Tiled Editor v1.4 版本,也兼容 1.4.x 小版本(如1.4.3)
实用建议
• 推荐用 Tiled 1.4.x 导出 tmx/tsx,避免高版本特性不兼容。
• 若用更高版本(如1.10+),可能报"Unsupported TMX version",基础功能通常可用,但存在显示异常风险,建议导出时选择兼容1.4的格式。
• 资源放置:tmx、tsx、png 同目录,避免加载失败。
以下是一份 Tiled 1.4.x 导出兼容设置的快速清单
✅必选设置(核心)
-
地图格式:导出为.tmx(不要二进制,选XML格式)
-
瓦片集格式:导出为.tsx(外部引用,不要内嵌)
-
版本兼容:文件→首选项→保存时兼容Tiled 1.4格式
✅关键避坑设置(必勾/必选)
• 图层类型:仅用普通图层、对象层,暂不使用高版本地形层
• 瓦片集:不勾选"使用六边形瓦片""等距瓦片"(基础正交/斜角可行)
• 不使用1.5+新增特性:图层特效、自定义属性高级选项、瓦片动画集
• 图片存储:瓦片图用.png格式,和tmx/tsx放同一文件夹
✅导出操作步骤(一步不落)
-
地图编辑完成后,点文件→导出为→选.tmx格式
-
弹窗勾选"保存外部瓦片集""相对路径"
-
直接将整个地图文件夹拖入Cocos资源管理器
以下一份Cocos侧加载tiledmap的极简代码片段,可以直接使用(适配Tiled1.4.x导出格式)
一、挂载式代码(推荐,新手友好)
挂在任意节点(如Canvas)上,直接运行生效
import { _decorator, Component, Node, TiledMap } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('LoadTiledMap')
export class LoadTiledMap extends Component {
start() {
this.loadMap(); // 启动即加载
}
// 核心加载方法
loadMap() {
// 1. 动态创建地图节点+组件(也可编辑器手动拖入TiledMap组件)
const mapNode = new Node('GameMap');
const tiledMap = mapNode.addComponent(TiledMap);
this.node.addChild(mapNode);
// 2. 加载地图资源(关键:填你的tmx文件路径,无需后缀)
// 示例:资源文件夹resources/map/下的test.tmx,路径写map/test
tiledMap.tmxAsset = 'map/test';
// 可选:获取指定图层(比如名为Ground的普通图层)
const groundLayer = tiledMap.getLayer('Ground');
if(groundLayer) console.log('图层加载成功');
}
}
二、编辑器快捷方式(无需写代码)
-
节点树新建Node,命名GameMap
-
给该节点添加TiledMap组件
-
把项目里的.tmx文件直接拖到组件的tmxAsset属性上
-
运行即可,自动加载瓦片集和图层
三、2个必避坑点(加载失败必看)
-
tmx/tsx/png必须同目录,且资源路径不能有中文
-
编辑器里务必把地图资源设为可导入(默认勾选,误删需手动勾)