1 个不稳定版本
| 0.1.0 | 2022年11月12日 |
|---|
#16 in #modifier
25KB
180 行
bevy_attr
通过最小开销自动管理 Bevy 中高度模块化和高度并行的值。
| bevy 版本 | crate 版本 |
|---|---|
| 0.9.0-dev | 0.1.0-dev |
此 crate 包含属性,这些属性是包含简单值和修饰符(也是组件)的组件,这些修饰符会自动编辑属性的值。
Attribute 和 Modifier 之间的关系可以看作与 Bevy 的 GlobalTransform 和 Transform 组件之间的关系相似。每帧一次,任何更改、添加或删除的修饰符都会强制同一实体的属性刷新。实体的所有修饰符将被收集、排序并依次重新应用于属性的默认值。尽管不切实际,但 Transform 可以 作为 GlobalTransform 上的修饰符实现,将 Transform 中的数据复制到 GlobalTransform 中,但此 crate 与许多并发修饰符一起工作效果最佳。
在 Bevy 应用中,属性的使用示例可以是状态系统,其中 Strength 和 Endurance 都实现了 Attribute 特性,并且其修饰符更新不频繁,或者更动态的系统,其中 Health 和 MaxHealth 实现了它。由于属性和修饰符都只是组件,在此示例中,让 MaxHealth 成为 Health 的修饰符可能是一个好主意。
依赖关系
~17–35MB
~523K SLoC