Creator 3.1.1 TiledMap加载图集资源BUG

当使用外部tsx tileset时,并且.tmx文件和.tsx文件不在同一个文件夹下时,没有加载到图集资源。
能在Tiled编辑器中正确加载和显示,所以路径是肯定没问题的。

测试demo结构如下:
1623641596(1)

在test2文件夹下的tile_iso_offset_with_tsx.tmx是能正常显示的,
在test文件夹下的tile_iso_offset_with_tsx2.tmx是无法显示的。
通过控制台打印TiledMap信息,前者_textures是有数据的,而后者_textures是空的。

  • Creator 版本: 3.1.1
  • 目标平台: PC Chrome/Creator编辑器
  • 重现方式:.tmx文件和.tsx文件不在同一个文件夹下
  • 首个报错: 无
  • 编辑器操作系统: Win10
  • 重现概率: 必现

最后题外话,我很喜欢3.0的拥抱Typescript的做法,希望Creator多多改善2D工作流,能稳定一些。以让似我这样的开发者能有信心和耐心继续深度使用Creator。

附demo:
TestExternalTileset.zip (61.0 KB)

问题更新:经过一番追查后发现,是序列化TiledMapAsset的时候,tsxFileNames去掉了相对路径信息,只留下文件名,而在运行时,对比的却是原source的完整相对路径。

收到。引擎组验证后会看看如何优化下这个情况

思考了一下, 目前这种把.tmx文件和.tsx文件放在同一文件夹下管理还是比较合理的. 我们会在文档上特别标注该用法, 以方便用户使用. 如何有好的想法或者确实有变更需求, 欢迎继续交流

放在同一文件夹下并不好!.tmx文件属于地图数据,.tsx文件属于图集数据,二者没必要关联在同一个文件夹下。如果简单点的游戏,.tmx文件数量并不多的时候是可以这样做。但是,当很多地图都共用一张或多张图集数据时,将所有.tmx文件和.tsx文件都扔在一起显然是非常粗暴的,这时候需要将地图按类型或按区域划分不同的目录结构。注:尤其像阻挡区域图集、地形高度图集、路线规划图集这些是全部地图共用的。

你们修复的方法其实很简单,就是在运行时解析source路径时,也同时把相对路径信息去掉,只留下文件名。虽然不完全严密(在有同名图集时有问题),但使用绝大多数情况了。

1赞

因为涉及到编辑器的修改, 没法很快同步到用户. 所以目前会优先在文档做出提示. 你说的有道理, 我记下了, 之后会进行优化的. 感谢你的意见

老哥,具体怎么修改?

临时的处理方法是,继承TiledMap,然后重写里面的__applyFile方法,把tmxInfo里面的xml文件内容中图集souce的路径改成只留下文件名,使用正则来搜索替换哦。