You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bevy_ecs_tilemap加载Tiled .tsx文件失败的问题求助

解决Bevy中bevy_ecs_tilemap加载外部TSX瓦片集的路径问题

背景

使用Bevy开发2D游戏,借助bevy_ecs_tilemap crate结合Tiled工具使用瓦片集,文件结构如下,目标是加载world.tmx:

tilesets
├── floor
│   ├── ground.tiled-project
│   ├── ground.tiled-session
│   ├── ground.tsx
│   ├── Rules
│   │   └── autotile rules.tmx
│   ├── rules.txt
│   └── world.tmx
└── test.tmx

问题

按照官方Tiled示例操作后,运行时出现错误:

WARN bevy_asset::asset_server: encountered an error while loading an asset: Could not load TMX map: Could not open 'tilesets/floor/ground.tsx'. Error: No such file or directory (os error 2)

但ground.tsx文件实际存在。

已尝试操作

  • 加载不依赖外部文件的瓦片集test.tmx可正常运行。

解决方法

  • 修正Tiled中TSX的引用路径
    打开Tiled中的world.tmx,查看外部瓦片集的引用路径。由于world.tmx和ground.tsx在同一目录下,直接将路径改为ground.tsx即可,不要带上层目录前缀,避免路径解析重复。

  • 确认Bevy资源目录配置
    确保tilesets被正确设置为Bevy的资源目录。可以在代码中明确指定:

    App::new()
        .add_plugins(DefaultPlugins.set(AssetPlugin {
            asset_folder: "tilesets".to_string(),
            ..default()
        }))
        // 其他插件与逻辑代码
    

    加载world.tmx时使用路径floor/world.tmx,而非tilesets/floor/world.tmx,防止路径叠加错误。

  • 清理Tiled缓存文件
    删除ground.tiled-project和ground.tiled-session文件,重新打开world.tmx并保存,避免旧路径缓存导致的引用错误。

  • 检查文件权限与大小写
    确保系统对ground.tsx有读取权限;在Linux/macOS环境下,注意路径和文件名的大小写一致性,避免因大小写不匹配导致的文件找不到问题。

内容的提问来源于stack exchange,提问作者Jove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:55:18