5个版本 (3个破坏性版本)
0.4.0 | 2022年4月16日 |
---|---|
0.3.1 | 2022年3月15日 |
0.3.0 | 2022年1月10日 |
0.2.0 | 2021年4月19日 |
0.1.0 | 2021年2月1日 |
#34 在 #ron
每月54 次下载
用于 material_designer
24KB
50 行
为Bevy定制的RON资源
此crate允许您轻松地将任意自定义数据注册为Bevy的资源,通过使用RON格式从文件加载。
它最小化了此类自定义资源类型所需的样板代码数量。
您只需在自定义类型上派生所需的特质,并在您的App中添加一个RonAssetPlugin即可!
注意:您需要为每种新资源类型想出一个独特的文件名扩展名。Bevy还需要为TypeUuid提供一个独特的UUID。
#[derive(serde::Deserialize)]
#[derive(TypeUuid)]
#[uuid = "1df82c01-9c71-4fa8-adc4-78c5822268f8"]
struct GameItemDescriptionAsset {
damage: f32,
durability: f32,
min_level: u8,
}
fn main() {
App::new()
// bevy
.add_plugins(DefaultPlugins)
// our asset
.add_plugin(
// load `*.item` files
RonAssetPlugin::<GameItemDescriptionAsset>::new(&["item"])
)
.add_startup_system(setup)
.run();
}
fn setup(server: Res<AssetServer>) {
// load our item configs!
let handles = server.load_folder("items");
// TODO: store the handles somewhere
}
现在您只需创建像这样的文件:assets/items/big_gun.item
(
damage: 25.0,
durability: 170.0,
min_level: 4,
)
请参阅examples/load_rons.rs
以获取更详细的示例!
$ cargo run --example load_rons
兼容的Bevy版本
已发布bevy_asset_ron版本的兼容性
bevy |
bevy_asset_ron |
---|---|
0.7 |
0.4 |
0.6 |
0.3 |
0.5 |
0.2 |
0.4 |
0.1 |
依赖项
~18–36MB
~543K SLoC