Bevy加载资源路径指向debug二进制目录而非项目根目录问题
解决Bevy加载GLTF模型路径指向target/debug的问题
问题排查与修复步骤
- 确认assets文件夹位置:确保项目根目录下存在
assets文件夹,且model.glb确实放在该文件夹内,而非误放置到target目录下。 - 检查Cargo运行环境:使用
cargo run启动项目时,Bevy依赖CARGO_MANIFEST_DIR环境变量定位项目根目录的assets。若变量异常会导致路径错误,可在代码中临时打印验证:
若输出不是项目根目录路径,检查是否在非项目根目录执行use std::env; // 在启动逻辑中添加 println!("CARGO_MANIFEST_DIR: {:?}", env::var("CARGO_MANIFEST_DIR"));cargo run,或IDE运行配置是否修改了工作目录。 - 验证资源加载路径写法:代码中
"model.glb#Scene0"的写法是正确的,无需额外路径前缀。若assets内有子文件夹(如assets/models/model.glb),则路径需写为"models/model.glb#Scene0"。 - 清理缓存重新构建:缓存异常可能引发路径问题,执行
cargo clean清理target目录后,再重新执行cargo run。
官方文档说明(中文翻译)
在桌面平台上,资源路径被视为相对于名为assets的文件夹,该文件夹必须位于以下位置之一:
- 与游戏可执行文件同级(用于分发)
- Cargo项目文件夹中(使用cargo开发运行时,通过CARGO_MANIFEST_DIR环境变量识别)
内容的提问来源于stack exchange,提问作者The Bic Pen
相关产品推荐
相关产品推荐

