#editor #bevy #game-engine #gamedev

bin+lib space_editor

Bevy游戏引擎的预制件编辑器。使用直观的用户界面创建/制作关卡/对象模板

2个版本

0.3.1 2023年12月21日
0.3.0 2023年12月18日

#93 in #editor

MIT/Apache

1.5MB
4K SLoC

space_editor:Bevy预制件编辑器

许可证:MIT

Editor screenshot

space_editor是用于Bevy引擎场景/预制件/原型设计的实用工具。它允许您以快速GUI方式创建/修改关卡/场景/预制件。

项目目标

在官方编辑器出现之前,旨在成为Bevy的编辑器。

主要功能

  • 直观的场景和预制件管理:Space Editor允许您使用直观的用户界面准备和保存场景和预制件。您可以在您的游戏开发工作流程中轻松重复使用它们。
  • bevy_xpbd_3d兼容性:Space Editor支持bevy_xpbd_3d,包括所有编辑器功能。
  • 基于 Gizmo 的操作:使用 Gizmo 操作实体位置、旋转和缩放。
  • 组件值编辑:在编辑器UI中轻松编辑组件参数。
  • 无缝编辑器-游戏切换:轻松在编辑器UI和游戏之间切换,以快速原型设计和测试。
  • 预制件可重用性:预制件可以嵌套在其他预制件中,提高项目中的可重用性和组织性。
  • 许多自定义组件:Space Editor实现了各种自定义组件,以无缝集成其保存系统与标准的Bevy场景格式。
  • 易于定制的API:轻松在编辑器中定制或注册您自己的组件,以满足特定项目需求。
  • 添加标签的API:通过轻松添加新标签扩展编辑器的功能,增强工作流程。

入门

要运行编辑器,请使用以下命令

运行平台游戏示例,请使用以下命令

运行平台游戏示例,请使用以下命令

用法 - 游戏

以下说明如何将space_editor作为游戏插件集成到您的游戏中以使用创建的预制件。

Cargo

将此行添加到您的Cargo.toml文件中

space_editor = "0.3.0"

预制件生成系统

要利用预制件生成系统,只需将插件添加到您的应用程序中,如下所示

App::default()
    .add_plugins(DefaultPlugins)
    .add_plugins(PrefabPlugin)

对于生成,请使用PrefabBundle

 commands.spawn(PrefabBundle::new("tile.scn.ron"))
        .insert(Name::new("Prefab"));

(更多代码在examples/spawn_prefab.rs中)

用法 - 编辑器

编辑器是一个可使用的可执行文件,可以根据您的需要使用和修改。其基本配置如下,使用simple_editor_setup

fn main() {
    App::default()
        .add_plugins(DefaultPlugins)
        .add_plugins(SpaceEditorPlugin::default())
        .add_systems(Startup, simple_editor_setup)
        .run();
}

(来自main.rs的代码)

编辑器使用策略

  • 分支此存储库。
  • 创建一个分支以保持与项目更新和已解决的问题的同步。
  • 编辑器使用 editor 功能执行。
  • 请随意将您的示例和社区模块上传到上游,以丰富 space-editor。

自定义

更详细的信息请参阅 docs/README.md。

只需一行代码即可将自定义类型添加到编辑器界面和预制体生成系统中。

use editor::prelude::EditorRegistryExt;

app.editor_registry::<Name>();

编辑器 UI 中组件的表示也可以通过 bevy_inspector_egui 库进行自定义。

预制体

预制体就是一个序列化为可读和可编辑的 RON 格式的 Bevy 场景。然而,它需要通过 PrefabBundle 生成才能激活自定义逻辑,例如向对象添加全局变换。

更多文档可以在 文档文件夹 中找到。

贡献

欢迎任何添加编辑器功能的功能请求。在 问题跟踪器 上打开一个问题。也欢迎任何拉取请求:)

许可证

MIT - https://choosealicense.com/licenses/mit/

项目命名

我正在使用编辑器来创建自己的科幻太空游戏,因此项目名称以 space_ 开头:)

依赖关系

~49–84MB
~1.5M SLoC