当前状态:🚧 早期开发(初始版本开发中)
bevy_workbench — 面向 Bevy 的中级编辑器脚手架,定位介于 bevy-inspector-egui 和 Unity/Godot 编辑器之间。
| English | 简体中文 |
|---|---|
| English | 简体中文 |
bevy_workbench 是一个基于 egui 的编辑器脚手架,专为 Bevy 游戏项目设计。
它提供结构化的编辑器布局、面板系统和主题定制能力,同时不强制施加重量级的场景管理或资源管线。
使用 bevy_workbench,你可以快速为 Bevy 游戏搭建开发编辑器,包含检查器、控制台、游戏视图和菜单栏面板。
- egui_tiles 停靠布局 — 自由拖拽、重排、分割、关闭和重新打开面板
- Rerun 风格暗色主题 — 移植自 Rerun 配色体系的暗色 UI 主题,另有 Catppuccin 和 egui 预设
- 菜单栏 — 文件/编辑/视图菜单,附带播放/暂停/停止工具栏
- 检查器 — 基于 bevy-inspector-egui 的实体层级与组件编辑器,支持基于反射快照的撤销
- 控制台 — tracing 日志桥接,支持严重级别过滤
- 游戏视图 — 渲染到纹理视口,具备焦点隔离和正确的坐标映射
- 编辑器模式 — 编辑 / 播放 / 暂停模式切换,配合 GameClock 和 GameSchedule
- 撤销/重做 — 布局变更、检查器编辑,附带撤销历史面板
- 自定义面板注册 — 实现
WorkbenchPaneltrait 并调用app.register_panel() - 可配置快捷键 — 点击重新录制,支持添加替代绑定
- 国际化 — 内置英文 / 中文,可通过自定义 Fluent FTL 源扩展
- 主题系统 — 按模式配置主题与亮度,多种预设可选
- 布局持久化 — 以 JSON 格式保存/加载停靠布局
- 自定义字体 — 系统区域检测,可配置字体路径
- 设置面板 — UI 缩放、主题、语言和字体配置
-
添加到
Cargo.toml:[dependencies] bevy_workbench = "0.3"
-
基本用法:
use bevy::prelude::*; use bevy_workbench::prelude::*; use bevy_workbench::console::console_log_layer; fn main() { App::new() .add_plugins( DefaultPlugins.set(bevy::log::LogPlugin { custom_layer: console_log_layer, ..default() }), ) .insert_resource(ClearColor(Color::BLACK)) .add_plugins(WorkbenchPlugin::default()) .add_plugins(GameViewPlugin) .add_systems(Startup, |mut commands: Commands| { commands.spawn(Camera2d); }) .run(); }
-
运行示例:
cargo run -p bevy_workbench --example minimal
- Rust 1.85 或更高版本
- Bevy 0.18 兼容的系统依赖:
# Linux (Ubuntu/Debian) sudo apt-get install -y g++ pkg-config libx11-dev libasound2-dev libudev-dev \ libwayland-dev libxkbcommon-dev
-
克隆仓库:
git clone https://github.com/Bli-AIk/bevy_workbench.git cd bevy_workbench -
构建项目:
cargo build
-
运行测试:
cargo test -
运行示例:
cargo run --example minimal
本项目使用以下 crate:
| Crate | 版本 | 描述 |
|---|---|---|
| bevy | 0.18 | 游戏引擎框架 |
| bevy_egui | 0.39 | Bevy 的 egui 集成 |
| bevy-inspector-egui | 0.36 | ECS 检查器小部件 |
| egui | 0.33 | 即时模式 GUI 库 |
| egui_tiles | 0.14 | 停靠瓦片布局 |
| catppuccin-egui | 5.7 | Catppuccin 主题预设 |
欢迎贡献! 无论是修复 bug、添加功能还是改进文档:
- 提交 Issue 或 Pull Request。
- 分享想法,讨论设计或架构。
本项目使用以下任一许可证:
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。