#assets #ron #bevy #engine #game #game-engine

bevy_asset_ron

为Bevy定制的RON资源

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

Download history 22/week @ 2024-03-11 15/week @ 2024-03-18 2/week @ 2024-03-25 77/week @ 2024-04-01 10/week @ 2024-04-08 9/week @ 2024-04-15 27/week @ 2024-04-22 7/week @ 2024-04-29 10/week @ 2024-05-06 9/week @ 2024-05-13 15/week @ 2024-05-20 10/week @ 2024-05-27 23/week @ 2024-06-03 9/week @ 2024-06-10 6/week @ 2024-06-17 14/week @ 2024-06-24

每月54 次下载
用于 material_designer

MIT 许可证

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