当前位置: 首页 > news >正文

【第零章编辑器开发与拓展】

前言:对编辑器拓展与开发可以节省很多时间,提高开发效率,比如技能编辑器,关卡编辑器这种。当然这只是编辑器开发的一些典型应用,它能做不止这些。学习完这个之后,我们可以开发项目需要的工具。我本意在编辑器里为新项目使用的一个开源框架编写使用文档、项目文档。
编辑器开发与拓展,unity给我们提供了很多类,用来实现编辑器的开发。下面简单介绍一下,实际上也就几个类,简单理解就是

  • ​​UI层​​:GUILayout/EditorGUILayout区别点击链接跳转了解一下就行)
  • 数据层​​:SerializedObject/SerializedProperty
  • 交互层​​:Handles
  • 容器层​​:Editor/EditorWindow
  • 扩展层​​:PropertyDrawer
  • 辅助层​​:Undo/EditorUtility
层级核心类职责描述补充说明
数据层SerializedObject
SerializedProperty
安全访问序列化数据
• 多对象编辑支持
• 脏数据标记
• 撤销操作集成
编辑器与游戏对象间的数据桥梁,确保修改符合序列化规则
交互层Handles3D场景交互控制
• 场景视图控件绘制
• Gizmo操作
• 3D输入事件处理
Unity场景编辑的直接操作接口,提供可视化编辑能力
容器层Editor
EditorWindow
UI容器管理
• Inspector面板容器
• 工具窗口框架
• 生命周期控制
编辑器扩展的基础容器,分别用于组件面板和独立工具窗口
扩展层PropertyDrawer属性定制渲染
• 数据类型可视化扩展
• 自定义属性布局
• 渲染逻辑封装
针对特定数据类型(枚举/结构体)的渲染扩展点
辅助层Undo
EditorUtility
开发辅助工具
• 操作历史管理
• 进度条/弹窗控制
• 对象状态管理
编辑器工作流的效率工具集,提升开发体验和操作安全性
类名核心职责详细说明
GUILayout 与 EditorGUILayoutUI 控件渲染负责 UI 控件的绘制和布局管理:
• GUILayout:基础 UI 布局,适用于运行时和编辑器
• EditorGUILayout:编辑器专用 UI,支持序列化属性
两者区别详见正文
SerializedObject数据安全管理提供对序列化数据的安全访问:
• 获取 / 修改属性值
• 支持多对象编辑
• 自动处理脏数据标记
Undo操作历史管理实现撤销 / 重做功能:
• 记录对象修改历史
• 支持多步撤销
• 集成 Unity 编辑菜单
EditorUtility工具辅助提供实用编辑器服务:
• 进度条显示(DisplayProgressBar)
• 对话框(DisplayDialog)
• 对象脏标记(SetDirty)
Handles3D 场景交互Scene 视图专用控件:
• 创建移动 / 旋转 / 缩放手柄
• 绘制自定义 Gizmo
• 3D 辅助线绘制
EditorWindow窗口容器创建自定义工具窗口:
• 窗口生命周期管理
• 面板布局控制
• 菜单栏集成(MenuItem 属性)
PropertyDrawer属性定制显示特殊数据类型渲染优化:
• 枚举可视化
• 结构体自定义布局
• 数据验证(范围 / 格式检查)
EditorInspector 定制自定义组件检视面板:
• 重写 OnInspectorGUI()
• 使用 OnSceneGUI() 添加场景交互

在这里插入图片描述

http://www.xdnf.cn/news/1120663.html

相关文章:

  • 不用下载软件也能录屏?Windows 10 自带录屏功能详解
  • Postman、Apifox、Apipost用哪个? 每个的优缺点和综合比较(个人观点)
  • qt多线程的实战使用
  • 【记录】BLE|百度的旧蓝牙随身音箱手机能配对不能连接、电脑能连接不能使用的解决思路(Wireshark捕获并分析手机蓝牙报文)
  • Linux(Ubuntu)硬盘使用情况解析(已房子举例)
  • HTML面试题
  • 消费 Kafka 一个TOPIC数据,插入到另一个KAFKA的TOPIC
  • python学习2
  • ubuntu(22.04)系统上安装 MuJoCo
  • FRP Ubuntu 服务端 + MacOS 客户端配置
  • 微前端架构详解
  • 《C++初阶之STL》【泛型编程 + STL简介】
  • Nacos 技术研究文档(基于 Nacos 3)
  • 基于R语言的极值统计学及其在相关领域中的实践技术应用
  • 迅为八核高算力RK3576开发板摄像头实时推理测试 ppyoloe目标检测
  • 《亿级流量系统架构设计与实战》通用高并发架构设计 读场景
  • 文心4.5开源之路:引领技术开放新时代!
  • Go从入门到精通(22) - 一个简单web项目-统一日志输出
  • 如何单独安装设置包域名
  • LeetCode--45.跳跃游戏 II
  • 雷卯针对灵眸科技RV1106G3开发板防雷防静电方案
  • AI数字人正成为医药行业“全场景智能角色”,魔珐科技出席第24届全国医药工业信息年会
  • 2024年中国公交网络数据集(Shp/分城市)
  • 【DOCKER】-6 docker的资源限制与监控
  • 【机器学习深度学习】Ollama vs vLLM vs LMDeploy:三大本地部署框架深度对比解析
  • ElasticSearch重置密码
  • LabVIEW浏览器ActiveX事件交互
  • JavaScript 性能优化实战:深入性能瓶颈,精炼优化技巧与最佳实践
  • aspnetcore Mvc配置选项中的ModelBindingMessageProvider
  • 多任务——协程