3个版本
0.1.3 | 2024年7月31日 |
---|---|
0.1.1 | 2024年7月9日 |
0.1.0 | 2024年7月9日 |
1096 在 游戏开发 中排名
每月下载量 315
在 7 个 Crates中使用(6 个直接使用)
50KB
1.5K SLoC
bevy_mod_stylebuilder
此crate提供了一组低级工具,用于通过流畅API配置bevy_ui
样式。一个StyleBuilder
对象了解如何插入、删除和修改Bevy样式组件,例如Style
、BackgroundColor
等,以及bevy_mod_picking
使用的Pickable
组件。
StyleBuilder
可以通过实现其他特质进行扩展。事实上,所有流畅方法都是特质方法。
use bevy_mod_stylebuilder::prelude::*;
fn style_button(ss: &mut StyleBuilder) {
ss.border(1)
.display(ui::Display::Flex)
.flex_direction(ui::FlexDirection::Row)
.justify_content(ui::JustifyContent::Center)
.align_items(ui::AlignItems::Center)
.align_content(ui::AlignContent::Center)
.padding((12, 0))
.border(0)
.color(colors::FOREGROUND)
.cursor(CursorIcon::Pointer);
}
在大多数情况下,您不需要自己实例化一个StyleBuilder
对象,UI框架会将其作为回调参数传递给您。然而,对于框架作者来说,以下是需要创建一个新StyleBuilder
的步骤
/// Construct a new StyleBuilder instance with the entity and `Styles` component.
let mut sb = StyleBuilder::new(&mut target, style);
/// Apply one or more style functions.
self.styles.apply(&mut sb);
/// Call `.finish()` to write out the changes.
sb.finish();
大多数样式组件,如BackgroundColor
,会立即修改,但是Style
被视为一个特殊情况,因为它有如此多的属性:它在StyleBuilder
实例中缓存,然后在最后通过finish
输出。
依赖项
~41–78MB
~1M SLoC