3个版本
0.1.3 | 2024年7月31日 |
---|---|
0.1.1 | 2024年7月25日 |
0.1.0 | 2024年7月10日 |
#603 in 游戏开发
每月406次下载
在 3 个Crate中(直接使用2个)
4MB
10K SLoC
bevy_quill_obsidian
Obsidian 是一个针对Bevy+Quill编写的具有偏见的控件库。这些控件旨在用于构建编辑器,其颜色方案和视觉设计基于此处找到的mocks: https://amytimed.github.io/bevy_editor_mockup/
控件
Button
和IconButton
复选框
颜色编辑
对话框
展开切换
Slider
和GradientSlider
旋转
列表视图
MenuButton
和MenuPopup
滚动视图
Swatch
和SwatchGrid
分隔器
ToolPalette
和ToolButton
钩子
create_bistable_transition
- 基于计时器的过渡动画,用于具有进入/退出动画的控件。use_element_rect
- 返回UI实体的逻辑屏幕边界。is_focused
,is_focus_within
,is_focus_visible
,is_focus_within_visible
- 如果元素(或其子元素之一)具有键盘焦点,则返回true的钩子。is_hovered
- 如果指针悬停在实体上,则返回true的钩子。
动画
可以插入到UI节点中的动画组件
AnimatedBackgroundColor
AnimatedBorderColor
AnimatedPxWidth
AnimatedPxHeight
AnimatedScale
AnimatedRotation
AnimatedTranslation
焦点处理和标签导航
Obsidian使用bevy_a11y
Focus
资源实现标签导航。
TabIndex
- 将此插入UI节点,以指示它可以具有键盘焦点。TabGroup
- 在UI层次结构的根处插入此控件以启用标签导航。您还可以具有额外的“模态”标签组以允许“标签陷阱”。KeyCharEvent
- 当键入字符时,将事件分发给当前焦点元素(使用bevy_eventlistener
)。KeyPressEvent
- 当按键被按下时,被派发到当前焦点元素(使用bevy_eventlistener
)的事件。DefaultKeyListener
- 当没有元素获得焦点时,接收键盘事件的实体。
一般来说,你应该避免在全局快捷键等情况下使用内置的 Bevy 键盘事件。原因是这不允许当前焦点小部件取消按键事件。例如,如果你在文本输入小部件中编辑字符串时按下 backspace
,你可能只想删除一个字符,而不是删除你当前选中的任何对象。
键盘事件始终派发到当前焦点元素,并从该元素向上冒泡。如果没有元素获得焦点,则按键事件派发到具有 DefaultKeyListener
组件的第一个实体。
标准样式和颜色
colors
- 标准编辑器颜色主题。typography
- 标准编辑器文本样式(目前使用 OpenSans,已包含在内)。
依赖项
~43–79MB
~1.5M SLoC