编辑器扩展——自定义窗口

简介: Unity 允许用户实现自定义窗口,以实现项目更加灵活且系统的配置。例如关卡编辑器、打包编辑器等等。它是能做出最多自定义功能的,但是实现过程其实也是比较固定的。总得来说自定义窗口最重要的部分其实是窗口内GUI得布局和方法,也就是说你要在窗口里做些什么。

Unity 允许用户实现自定义窗口,以实现项目更加灵活且系统的配置。例如关卡编辑器、打包编辑器等等。它是能做出最多自定义功能的,但是实现过程其实也是比较固定的。总得来说自定义窗口最重要的部分其实是窗口内GUI得布局和方法,也就是说你要在窗口里做些什么。

窗口类型

默认窗口(可与其他窗口合并):适合做编辑器窗口。
弹窗 (PopUp):适合做窗口分层。
对焦弹窗(DropDown,失去焦点自动关闭):适合提示类窗口,比如插件介绍。
辅助窗口(AuxWindow):说是能够实现窗口重用,但是官网没有实例,不清楚具体是怎么实现重用的。
浮动窗口(UtilityWindow):所有不能被合并的窗口都叫浮动窗口
通知消息 (Notification):显示在窗口上,会自动淡出。可以调用RemoveNotification()将其手动关闭。
绘制

绘制自定义窗口最重要的是要实现OnGUI函数和一个可供MenuItem调用的静态方法(假设叫 Init 函数)。

OnGUI是自定义窗口类必须要实现的函数,其中实现具体布局和方法调用,决定窗口里看起来是怎么样的以及能实现什么功能。

Init函数其实是MenuItem的静态函数,用来相应MenuItem的点击,其中主要设置一些窗口的属性,比如大小、标题,位置等等。

重要API

EditorWindow:所有自定义窗口都要继承自它
GUI、EditorGUI、GUILayout、EditorGUILayout:都是用来绘制控件的
上述四种区别:前两种在绘制GUI的时候要传入Rect来确定位置,比较死板;后两种能够自动排版;有Editor字样的有针对于Editor相关的控件。
最最最重要的

就是工具方法。最根源的问题,你为什么要自定义窗口这才是最重要的。其他控件的绘制其实问题不大,最不济去翻API文档就能实现控件了。但如果工具方法写不出来,一切都白搭。

另外,要注意投入产出问题,做扩展的原始目的是提高效率,如果你完成的功能可以通过其他方式较快实现,那就没必要做扩展了。

反编译成熟插件的窗口扩展

要熟悉一项技能最重要的是自己动手实践,但是参看前人经验也同样重要。我们可以通过JetBrain的dotPeek对插件dll文件反编译成C#,这样就可以参照学习了。

相关文章
|
4月前
|
Web App开发 JavaScript 前端开发
用来用去还是用回了ueditor-Vue富文本编辑器二次扩展
用来用去还是用回了ueditor-Vue富文本编辑器二次扩展
71 11
|
4月前
|
存储 移动开发 小程序
uniapp富文本editor输入二次扩展兼容微信小程序
uniapp富文本editor输入二次扩展兼容微信小程序
168 0
|
6月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
548 1
|
9月前
|
IDE 持续交付 vr&ar
Unity编辑器扩展
Unity编辑器扩展
|
9月前
|
存储 搜索推荐 C#
Unity编辑器扩展
Unity编辑器扩展
68 0
34EasyUI 数据网格- 扩展编辑器
34EasyUI 数据网格- 扩展编辑器
47 0
|
测试技术 容器
Easyui datagrid 扩展单元格textarea editor
Easyui datagrid 扩展单元格textarea editor
311 0
|
图形学 Windows
很好用的Unity编辑器扩展工具 Odin Inspector教程
Odin包含许多功能,例如Static Inspector,Project Validation,Odin Editor Windows和我们的开源Odin Serializer,它允许您在需要多态对象结构时扩展Unity的序列化功能,或者希望在运行时序列化和反序列化数据。
|
图形学
Unity 3D编辑器扩展介绍、教程(二) —— 创建窗口
Unity编辑器扩展教程(二) 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
1479 0
|
测试技术 图形学
Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项
Unity编辑器扩展教程 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
2593 0