#variables #game #global #during #applications #tool #cvar

tuna

Tuna-bles用于在游戏和其他应用程序中实时调整变量

4个版本

0.1.0 2022年2月17日
0.0.3 2021年5月17日
0.0.2 2021年5月16日
0.0.1 2021年5月16日

#578 in 配置

每月31次下载
2 crates 中使用

MIT/Apache

27KB
633

tuna

Tuna是一个在游戏开发期间管理CVARs的工具,作为一组全局变量,可以在其上进行操作。

在核心上,Tuna的目标是易于使用,同时避免不安全代码。

以下是使用方法

extern crate tuna;

const ENABLE_LOGGING: tuna::Boolean = tuna::Boolean::new("logging", "enable", false);

fn main() {
    ENABLE_LOGGING.register();

    for i in 0..10 {
	    eprintln!("xx");
        if (ENABLE_LOGGING.read()) {
            eprintln!("looping once");
        }
		if i == 5 {
		    ENABLE_LOGGING.write(true);
		}
    }
}

在第一次读取时可能会因为性能损失而省略注册调用。

还有一个实用宏来更轻松地创建类别

extern crate tuna;

#[tuna::tuna]
mod logging {
	pub(super) const ENABLE: bool = false;
}

fn main() {
    logging::register();

    for i in 0..10 {
        if (logging::ENABLE.read()) {
            eprintln!("looping once");
        }

		if i == 5 {
		    logging::ENABLE.write(true);
		}
    }
}

请注意,tuna仍在开发中!我正在根据需要对其进行开发,但在构建的同时我也想对其进行测试 - 而不是单独构建一个完整的系统。

替代方案

  • cvar - 更具可定制性,内置功能较少

依赖关系

~1.8–4MB
~77K SLoC