UnityEditor

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

2019-03-10  本文已影响24人  JervieQin

介绍

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

窗口类型

绘制

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

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

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

重要API

最最最重要的

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

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

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

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

注:配套案例可在EditorExtensionDemo仓库中查看。

上一篇 下一篇

猜你喜欢

热点阅读