#bevy-ui #ui #ui-framework #bevy #reactive

bevy_mod_stylebuilder

一组用于Bevy UI样式的流畅构建器工具

3个版本

0.1.3 2024年7月31日
0.1.1 2024年7月9日
0.1.0 2024年7月9日

1096游戏开发 中排名

Download history 240/week @ 2024-07-08 36/week @ 2024-07-15 38/week @ 2024-07-22 195/week @ 2024-07-29 34/week @ 2024-08-05

每月下载量 315
7 Crates中使用(6 个直接使用)

MIT/Apache

50KB
1.5K SLoC

bevy_mod_stylebuilder

此crate提供了一组低级工具,用于通过流畅API配置bevy_ui样式。一个StyleBuilder对象了解如何插入、删除和修改Bevy样式组件,例如StyleBackgroundColor等,以及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