这个项目能做什么

bevy_asset_loader 是 Bevy 游戏引擎的一个插件,用于简化和组织游戏资源加载。它引入了一个可派生的 `AssetCollection` trait,允许开发者将相关资源分组到结构体中,这些结构体在完全加载后可作为 Bevy ECS 资源使用。 该插件的主要功能是加载状态系统。开发者可以配置一个专用于资源加载的 Bevy 状态,指定要加载的资源集合,并定义加载完成后要转换到的下一个状态。加载状态确保所有资源句柄在进入下一个状态之前完全加载。 支持的资源字段类型包括: - 从文件路径加载的单个 `Handle<T>` 字段(音频、图像等) - 纹理图集布局,可配置瓦片大小、列数、行数和填充 - 具有自定义采样器配置(过滤模式、环绕模式)的图像 - 具有可配置图层数的数组纹理 - 标准材质(启用 3d 功能时) - 作为 `Vec<UntypedHandle>` 或类型化向量加载的文件夹 - 用于 Web 兼容资源集合的路径列表 - 使用 MapKey trait 作为 HashMap 加载的集合 支持两种资源配置模式: 编译时资源直接在代码中使用派生宏属性。路径和选项是硬编码的,更改时需要重新编译。 动态资源使用 `key` 属性而不是 `path`,允许配置存储在 `.assets.ron` 文件中。这使资源数据与代码分离,减少重新编译频率,并让非程序员更容易管理资源。`standard_dynamic_assets` 功能启用动态资源的 RON 文件加载。 其他功能包括: - 与 iyes_progress crate 的进度跟踪集成,支持加载条 - 失败状态配置,用于优雅处理缺失或未加载的资源 - `finally_init_resource` 用于在资源集合加载后初始化 FromWorld 资源 - 通过 `init_collection` 直接初始化,无需加载状态 - 通过移除 AssetCollection 资源来卸载不再需要的资源 该 crate 采用 Apache-2.0 和 MIT 双许可,并保持与多个 Bevy 版本的兼容性,有一个专门的分支跟踪 Bevy 的主开发分支。