14 个版本 (重大更新)
0.11.0 | 2024年7月4日 |
---|---|
0.10.0 | 2024年2月17日 |
0.8.0 | 2023年11月4日 |
0.7.0 | 2023年7月10日 |
0.3.0 | 2022年7月30日 |
#144 in 游戏开发
每月下载 3,960 次
用于 26 个crates (16 直接使用)
42KB
636 行
Bevy common assets
一组 Bevy 插件,提供对常见文件格式的通用资产加载器。
支持格式
格式 | 功能 | 示例 |
---|---|---|
json |
json |
json.rs |
msgpack |
msgpack |
msgpack.rs |
postcard |
postcard |
postcard.rs |
ron |
ron |
ron.rs |
toml |
toml |
toml.rs |
xml |
xml |
xml.rs |
yaml |
yaml |
yaml.rs |
csv |
csv |
csv.rs |
用法
启用您想使用的格式的功能。
定义您希望从文件中加载的类型,并为它们推导 serde::Deserialize
,bevy::reflect::TypePath
和 bevy::asset::Asset
。
#[derive(serde::Deserialize, bevy::asset::Asset, bevy::reflect::TypePath)]
struct Level {
positions: Vec<[f32;3]>,
}
有了这些类型,您就可以开始添加资产插件。每个插件都将其应加载的资产类型作为泛型参数。您还可以为每个插件配置自定义文件扩展名
use bevy::prelude::*;
use bevy_common_assets::json::JsonAssetPlugin;
use bevy_common_assets::msgpack::MsgPackAssetPlugin;
use bevy_common_assets::postcard::PostcardAssetPlugin;
use bevy_common_assets::ron::RonAssetPlugin;
use bevy_common_assets::toml::TomlAssetPlugin;
use bevy_common_assets::xml::XmlAssetPlugin;
use bevy_common_assets::yaml::YamlAssetPlugin;
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
JsonAssetPlugin::<Level>::new(&["level.json", "custom.json"]),
RonAssetPlugin::<Level>::new(&["level.ron"]),
MsgPackAssetPlugin::<Level>::new(&["level.msgpack"]),
PostcardAssetPlugin::<Level>::new(&["level.postcard"]),
TomlAssetPlugin::<Level>::new(&["level.toml"]),
XmlAssetPlugin::<Level>::new(&["level.xml"]),
YamlAssetPlugin::<Level>::new(&["level.yaml"])
))
// ...
.run();
}
#[derive(serde::Deserialize, bevy::asset::Asset, bevy::reflect::TypePath)]
struct Level {
positions: Vec<[f32; 3]>,
}
上面的示例将加载以 .level.json
或 .custom.json
结尾的json文件中的 Level
结构体,从以 .level.ron
结尾的ron文件中加载,等等...
请参阅 示例 了解使用不同格式的有效Bevy应用程序。
兼容的Bevy版本
主分支与最新的Bevy版本兼容。
bevy_common_assets
版本的兼容性
bevy_common_assets |
bevy |
---|---|
0.11 |
0.14 |
0.10 |
0.13 |
0.8 - 0.9 |
0.12 |
0.7 |
0.11 |
0.5 - 0.6 |
0.10 |
0.4 |
0.9 |
0.3 |
0.8 |
0.1 - 0.2 |
0.7 |
main |
0.13 |
bevy_main |
main |
许可
以下任一双重许可
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- 麻省理工学院许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,任何有意提交以包含在作品中的贡献,均应按上述方式双授权,不附加任何额外条款或条件。
依赖项
~22–61MB
~1M SLoC