跳转至

介绍

自 2.1.5

Editor 框架是 LDLib2 用来构建游戏内编辑软件的基础设施。

它不是某一个固定编辑器,而是一组可复用系统:分割面板、可停靠 View、项目文件、资源浏览器、Inspector、撤销历史、设置面板,以及场景编辑器、图编辑器这类专用组件。

LDLib2 内置的 UI Editor 就是基于这套框架实现的。你在自己的编辑器中也可以使用同样的项目系统、资源面板、Inspector、HistoryView 和分割工作区。

UI Editor
基于 Editor 框架构建:UI Editor
Node Graph Editor
基于 Editor 框架构建:Node Graph Editor
Photon Editor
基于 Editor 框架构建:Photon Editor

你可以用它制作商店编辑器、可视化脚本编辑器、UI 构建器、节点图编辑器、场景/对象编辑器、资源管理器,或者任何更接近 Unity、Blender、Blockbench、Adobe 这类软件,而不是普通 Minecraft Screen 的游戏内工具。

模块

flowchart TD
    A[Editor Framework] --> B[Getting Start]
    A --> D[Project System]
    A --> E[Views]
    A --> F[Resources]
    A --> G[Menus]
    A --> H[Settings]
    A --> I[Misc]

    E --> E1[Built-in Views]
    F --> F1[Providers and Paths]
    F --> F2[Resource UI]
    I --> I1[SceneEditor]
    I --> I2[Source Examples]

Getting Start 会创建一个小型编辑器项目,介绍默认 View 区域,并说明如何打开编辑器。

Project System 介绍项目类型、项目生命周期和文件持久化。

Views 介绍 View 系统。Built-in Views 介绍 Inspector 和 History。

Resources 介绍资源定义。Providers and Paths 介绍资源来源和路径。Resource UI 介绍内置资源浏览器。

Menus 介绍 File/View 菜单扩展。

Settings 介绍持久化编辑器设置。

Misc 目前包含 SceneEditorSource Examples

学习参考

学习这套框架最好的方式,是阅读真实编辑器并对比它们的结构。

  • UIEditor:完整编辑器,包含项目注册和默认资源。
  • UIXmlProject / UIXmlProjectType:将 XML 文本保存为项目文件,而不是默认 NBT。
  • GraphEditorView:复杂 View,包含 dirty 状态、命令处理、保存按钮和导航。
  • ResourceProviderContainer:资源面板交互的主要参考。

更多细节见 Source Examples

ViScriptShop
基于 LDLib2 Editor 框架开发的模组:ViScriptShop