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