7个版本
0.6.1 | 2024年1月20日 |
---|---|
0.6.0 | 2024年1月19日 |
0.5.1 | 2023年10月12日 |
0.5.0 | 2023年8月4日 |
0.4.1 | 2023年6月22日 |
685 在 游戏开发 中
每月37次下载
690KB
3K SLoC
TOMT BevyCSS
什么是TOMT BevyCSS?
TOMT BevyCSS是一个由Bevy ECSS派生的分支项目,它允许使用CSS的子集与bevy_ecs交互。它主要针对为bevy_ui应用样式,但可以通过实现自定义属性由任何组件使用。
此项目分支的主要目标如下
- 为下游crate提供更频繁的更新
- 改进并扩展现有文档、测试和示例,以供下游用户使用
- 扩展BevyECSS目前提供的功能集
包名?
TOMT
= Many Things TomeBevyCSS
= Bevy + CSS,此库将CSS功能引入Bevy UI
谁是TOMT(Many Things Tome)?
Many Things Tome是一个小型友谊小组,拥有各种互联网项目,主要关注Many Things Tome YouTube频道。
此库项目由TheBeardedQuack(GitHub,YouTube)提供,从BevyECSS分支而来,并发布在相同的MIT和Apache v2.0许可证下,以允许继续自由使用、修改和分发。
此crate标志着Many Things Tome的第一个公开版本。
与BevyECSS的变更
版本 | 变更日志 | ||
---|---|---|---|
0.4.0 |
|
||
0.4.1 |
|
||
0.4.2 |
|
||
0.5.0 |
|
||
0.5.1 |
|
||
0.6.0 |
|
0.6.1 |
|
未来目标
- 更新 crate 依赖项
- 将修复程序回滚到 BevyECSS
- 高级语言支持(LESS / SCSS / SASS)
- 添加 CSS 颜色函数
入门(使用方法)
要使用 TOMT_BevyCSS,只需向任何实体添加一个包含已加载 css
文件的 StyleSheet
即可。所有样式表规则都将应用于实体及其 所有 后代(子子的子节点等)。
use bevy::prelude::*;
use tomt_bevycss::prelude::*;
fn setup_awesome_ui(
root: Entity,
mut commands: Commands,
asset_server: Res<AssetServer>
) {
commands
.entity(root)
.insert(StyleSheet::new(asset_server.load("sheets/awesome.css")));
}
就是这样,现在你的 UI 真的会看起来非常 出色!
CSS 支持
这个 crate 旨在首先支持最常见的 CSS 功能,并在提供建议的情况下逐渐添加更多功能。目前这意味着仅提供 CSS 功能的一部分。
要查看目前支持的 CSS 功能,请参阅 CSS 支持(docs/css-support.md)。
自定义组件选择器
TOMT_BevyCSS 支持自定义组件选择器,因此您不仅限于 bevy 提供的组件。
如果您需要一个目前不支持的核心 bevy 组件作为选择器,此功能也可以用来自行实现支持。如果您决定为任何 bevy 内置组件创建自定义选择器,我们会非常感激您的 pull requests。
app.register_component_selector::<MyComponent>("selectorname");
有关更多信息,请参阅 自定义组件(docs/custom-components.md)。
自定义属性
TOMT_BevyCSS 支持自定义属性设置器。
结合上述自定义组件选择器,您可以使用 CSS 系统进行更多操作,而不仅仅是样式。
#[derive(Default)]
pub(crate) struct MyProperty;
impl Property for MyProperty
{
/* For implementation details please see:
https://github.com/TheBeardedQuack/tomt_bevycss/tree/main/docs/custom-properties.md
*/
}
fn main()
{
let mut app = App::new();
app.register_property::<MyProperty>();
}
有关更多信息,请参阅 自定义属性(docs/custom-properties.md)。
Bevy 支持表
bevy | tomt_bevycss |
---|---|
0.8 | 0.1 |
0.9 | 0.2 |
0.10 | 0.3 |
0.10 | 0.4.x |
0.11 | 0.5.x |
0.12 | 0.6.x |
贡献
有想法、反馈、问题或发现了错误吗?随时欢迎在GitHub上打开一个问题!
许可协议
TOMT_BevyCSS采用双重许可协议,可以是以下其中之一:
这意味着您可以选择您偏好的许可协议!这种双重许可方法在Rust生态系统中是事实上的标准,并且有很好的理由包括两者。
特别感谢
我想对那些为这个crate的开发做出贡献的人表示衷心的感谢。
依赖项
~41–74MB
~1.5M SLoC