#bevy #config #gamedev #bevy-plugin

bevy_easy_config

一个允许您轻松定义和实例化配置文件的 Bevy 插件

1 个不稳定版本

0.1.0 2024年8月6日

#410游戏开发

Download history 122/week @ 2024-08-05

122 每月下载量

MIT/Apache

35KB
133 代码行

Bevy Easy Config

Bevy Easy Config 是一个插件,允许您轻松加载配置文件并将它们作为资源实例化。

用法

首先定义您想加载的结构体,并实现/推导相关特性

// Define the struct to load
#[derive(Deserialize, Asset, Resource, Clone, TypePath)]
struct Settings {
    some_keybind: KeyCode
}

// Default also needs to be implemented
impl Default for Settings {
    fn default() -> Self {
        Self {
            some_keybind: KeyCode::KeyW
        }
    }
}

将其添加到您的应用程序中

use bevy_easy_config::EasyConfigPlugin;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            EasyConfigPlugin::<Settings>::new("settings.ron"),
        ))
        .run();
}

这将加载位于 assets/settings.ron 的文件,并将其插入到 Settings 结构体中作为资源。

fn some_random_function(
    settings: Res<Settings>
) {
    // ... Your awesome code here
}

注意

在加载资产之前,访问 Settings 资源时,您将得到 Settings::default() 中的值。据我所知,目前还没有很好的解决办法,因此您需要在前几次滴答中处理默认值,直到资产加载完毕。当资产加载后,它将自动替换默认值。

许可证

双许可以下任一项

任选其一。

您的贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义的,任何有意提交以包含在作品中的贡献,都应如上所述双许可,不附加任何额外条款或条件。

依赖关系

~39–79MB
~1.5M SLoC