新项目是关卡制的一个小游戏,需要策划去手动拼接关卡,又是采取了3D场景下2D人物的展现形式,所以对于场景中的道具摆放及角度调整是一个较为细致繁琐的活,于是乎,策划提出了需要一个关卡制作工具的需求,最开始是希望能够有一个独立出来的exe文件,但是UNITY本身其实就是一个非常强大的编辑工具,所以在我的劝说之下,采取了拓展Unity Editor的方式来进行制作
首先新建一个脚本,注意一定要放在Editor目录下,我们是希望在不运行的时候直接去在Scene场景中做相关的编辑操作,所以类继承自EditorWindow
[MenuItem]就可以定义在工具栏显示,我们可以随时调取打开编辑器,%M为定义快捷键
ok,那么在定义好类之后,我们就需要去显示我们的具体内容了,很简单,在OnGUI下去定义你要显示的内容即可
基本的操作就是这两步,就可以实现一个能够从工具栏点击开启的带有功能的窗口。而接下来再向窗口中添加内容的部分我在进行了学习之后,理解到了其中一点我认为比较关键的部分分享给大家。
由于我们是直接使用代码去制作一个带有工具界面,而如何实现各个组件的正确排列是我在制作过程中遇到的一个问题,后来发现EditorGUI中是使用了代码块的方式来定义组件及各个区域的排列。
下图我是使用了BeginHorizontal()以及EndHorizontal()实现了一个自动平行排列的组件块,而且既然有Horizontal就一定会有Vertical,实现自动竖直排列的组件块。当然了 也可以选在不实用自动排列而去自定义组件的位置,这样会无视当前位置是否有其他组件而直接进行放置
这样就可以实现各种组件模块根据所需进行摆列了
工具现在一些基本功能都做的差不多了,还欠一些细节部分。之后再想到什么还会继续补充