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日 |
1059 in 游戏开发
每月2,310次下载
用于 bevy_editor_pls
120KB
2.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 (Pan/Zoom)
:任何鼠标按钮用于平移,滚动用于缩放3d (Free)
:WASD + Ctrl/Shift
+Shift
为自由3D相机提供速度提升3d (Pan/Orbit)
:右键单击
用于围绕焦点旋转,中键鼠标
用于平移
更改默认控制
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–80MB
~1.5M SLoC