12个版本 (破坏性)
0.9.0 | 2024年8月11日 |
---|---|
0.8.1 | 2024年3月6日 |
0.8.0 | 2024年2月21日 |
0.7.0 | 2023年12月27日 |
0.2.0 | 2022年11月13日 |
#263 in 游戏开发
2,411 下载/每月
用于 4 crates
93KB
1.5K SLoC
bevy_editor_pls
⚠️ 这是一个正在进行中的项目:查看缺失的功能以确认您的使用案例是否尚未得到支持。
为您的bevy游戏添加调试工具,包括
- 层次视图和组件检查器
- 独立的编辑器相机
- 一些内置的编辑器面板用于诊断和调试设置
- 场景导出
这并不是,也不打算与bevy最终会拥有的实际编辑器相媲美。 bevy_editor_pls
通过向游戏可执行文件添加编辑器UI来尝试获取低垂的果实,而不必具有良好设计的编辑器架构所固有的所有复杂性。
如何使用
添加 EditorPlugin
+use bevy_editor_pls::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
+ .add_plugins(EditorPlugin::default())
...
.run();
}
自定义编辑器面板
use bevy_editor_pls::{egui, prelude::*};
use bevy_editor_pls_core::editor_window::{EditorWindow, EditorWindowContext};
fn main() {
App::new()
...
.add_editor_window::<MyEditorWindow>()
...
.run();
}
pub struct MyEditorWindow;
struct MyEditorWindowState {
}
impl EditorWindow for MyEditorWindow {
type State = MyEditorWindowState;
const NAME: &'static str = "Another editor panel";
fn ui(world: &mut World, cx: EditorWindowContext, ui: &mut egui::Ui) {
let currently_inspected = &cx.state::<MyEditorWindow>().unwrap().selected;
ui.label("Anything can go here");
}
}
控件
默认控件如下
E
切换编辑器Ctrl+Enter
暂停/恢复时间F
聚焦选定的实体T/R/S
显示平移/旋转/缩放操纵杆- 双击菜单栏以全屏显示
相机
2d (平移/缩放)
:任何鼠标按钮用于平移,滚动用于缩放3d (自由)
:WASD + Ctrl/Shift
+Shift
为自由3D相机提供速度加成3d (平移/环绕)
:右键单击
用于围绕焦点旋转,中间鼠标按钮
用于平移
更改默认控件
use bevy_editor_pls::EditorPlugin;
use bevy_editor_pls::controls;
use bevy_editor_pls_default_windows::hierarchy::picking::EditorRayCastSource;
fn main() {
App::new()
// ..
.add_plugin(EditorPlugin)
.insert_resource(editor_controls())
.add_startup_system(set_cam3d_controls)
// ..
.run();
}
fn editor_controls() -> EditorControls {
let mut editor_controls = EditorControls::default_bindings();
editor_controls.unbind(controls::Action::PlayPauseEditor);
editor_controls.insert(
controls::Action::PlayPauseEditor,
controls::Binding {
input: controls::UserInput::Single(controls::Button::Keyboard(KeyCode::Escape)),
conditions: vec![controls::BindingCondition::ListeningForText(false)],
},
);
editor_controls
}
fn set_cam3d_controls(
mut query: Query<&mut bevy_editor_pls::default_windows::cameras::camera_3d_free::FlycamControls>,
) {
let mut controls = query.single_mut();
controls.key_up = KeyCode::Q;
controls.key_down = KeyCode::E;
}
缺失的功能
- 场景导入
- 编辑器中不可见实体的可视化(例如查看摄像机的位置)
Bevy支持表
bevy | bevy_editor_pls |
---|---|
0.14 | 0.9 |
0.13 | 0.8 |
0.12 | 0.7 |
0.12 | 0.6 |
0.11 | 0.5 |
0.10 | 0.4 |
0.10 | 0.3 |
0.9 | 0.2 |
0.8 | 0.1 |
依赖项
~42–82MB
~1.5M SLoC