#settings #persistent #gamedev #config-file #launch

bevy-settings

在游戏启动之间使用简单的结构体作为持久化设置。例如,用于存储音频设置。

10个版本 (6个重大变更)

0.6.0 2024年7月5日
0.5.1 2024年4月5日
0.5.0 2024年2月20日
0.4.0 2023年11月8日
0.0.2 2023年1月19日

#264 in 游戏开发

Download history • Rust 包仓库 5/week @ 2024-05-30 • Rust 包仓库 15/week @ 2024-06-06 • Rust 包仓库 3/week @ 2024-06-13 • Rust 包仓库 1/week @ 2024-06-27 • Rust 包仓库 140/week @ 2024-07-04 • Rust 包仓库 12/week @ 2024-07-11 • Rust 包仓库 6/week @ 2024-07-18 • Rust 包仓库 53/week @ 2024-07-25 • Rust 包仓库 18/week @ 2024-08-01 • Rust 包仓库 18/week @ 2024-08-08 • Rust 包仓库 19/week @ 2024-08-15 • Rust 包仓库

每月下载量 109次
bevy-codex 中使用

MIT 许可证

32KB
208

Bevy Settings

License: MIT Doc Crate Build Status Bevy tracking

本项目的目标是存储游戏启动过程中的设置。

目前此crate支持Linux、Mac和Windows。

crate将为每个操作系统选择适当的路径来存储配置文件。

用法

此示例将在您的系统上生成配置文件,但如果您选择一个不存在的路径,可能不会对您造成伤害

use bevy::prelude::*; 
use bevy_settings::{Serialize, Deserialize};

#[derive(Resource, Default, Serialize, Deserialize, Clone, Copy)]
#[serde(crate = "bevy_settings::serde")]
struct Settings {
    master_volume: f64,
    custom_cursor: bool,
}

fn main () {
    App::new()
        .add_plugin(bevy_settings::SettingsPlugin::<Settings>::new(
            "My awesome game studio",
            "The name of the game"
        ))
        .run();
}

例如,在我的Linux机器上,这将创建

❯ cat ~/.config/myawesomegamestudio/My awesome game studio.toml 
master_volume = 0.0
custom_cursor = false

路线图

  • 多存储支持
  • 文件命名支持
  • 混淆支持,这应该只是让数据更改变得困难,但并不真正安全

已知限制

  • toml crate与大型数字存在问题,例如u64::MAX
  • 元组结构体存在问题,例如TestSetting(u32)不工作,但TestSetting{ test: u32 }可以正常工作。

查看基本示例以了解如何持久化配置。

版本 Bevy版本
0.1.0 0.9
0.2.0 0.10
0.3.1 0.11
0.4.0 0.12
0.5.0 0.13
0.6.0 0.14

依赖项

~13–26MB
~324K SLoC