5 个版本 (破坏性)

0.5.0 2021年10月2日
0.4.0 2021年7月13日
0.3.0 2021年7月3日
0.2.0 2021年6月27日
0.1.0 2021年6月24日

#828调试

MIT/Apache

91KB
2K SLoC

LiveMod - 程序值运行时修改

livemod-test livemod-gui crates.io dependency status

Livemod是我尝试在Rust中实现Unity风格的运行时参数修改,方式简单,必要时易于关闭。

用法

Livemod需要库livemod和本地安装的查看器,例如livemod-gui

livemod-gui可以通过cargo安装

cargo install livemod-gui

并且可以从你的代码中使用

let livemod = LiveModHandle::new_gui();

let tracked_variable = livemod.create_variable("My variable", 0_u32);

使用#[derive]

如果启用了derive功能,则可以#[derive]派生LiveMod特质。派生宏的行为可以通过#[livemod]字段属性来修改,其行为如下文所述

#[livemod(skip)]:跳过字段的表示

该字段不会被livemod修改,并且不需要实现LiveMod特质。

#[livemod(rename = "New name")] 重命名字段

字段将使用新名称标记。默认情况下,字段的标签是通过将名称的首字母大写并将下划线替换为空格生成的。

#[livemod(repr = Trait(args))] 修改字段的表示形式

而不是通过在字段的类型上调用 LiveMod::data_type() 来确定其表示形式,而是使用提供的特质的定义。

例如,整数和浮点数实现了 Slider 特质,可以使用如下方式

#[livemod(repr = Slider(0..=100))]
field: u32

依赖项

~17MB
~307K SLoC