源地址:http://gad.qq.com/article/detail/33463
下面和大家介绍下自定义Inspector检视面板,不了解的同学可以看看。
还是使用上一篇的 Unity 工程,然后在 Scripts 文件夹里创建一个新的 C# 脚本,命名为“Player”,然后双击打开脚本,然后为其添加如下代码:
Player 类记录了 Player 的一些基础信息,例如:ID、名字、背景故事、生命值、伤害等等。
自定义 Inspector 属性面板的一些基础知识,和注意事项如下图所示:
传送门:http://www.ceeger.com/Script/Editor/Editor.html
接下来开始制作的我们自己的 Inpector,对于自定义 Inpector 面板可参考下图的API:
传送门:http://www.ceeger.com/Script/EditorGUILayout/EditorGUILayout.BeginVertical.html
现在,请你在 Editor 文件夹中创建一个新的 C# 脚本,双击就打开该脚本,并为其添加如下代码:
Okey,接下来一一分析一下,虽然已经上了备注,但是克森觉得还不是很清楚。
在这对兄弟里面做的布局都是以垂直方向来排列的。
如上图所示,整个页面元素都是以垂直方向来布局的。
在这对兄弟里面做的布局都是以水平方向来排列的。
由于我们在上图圈选的地方使用了 Horizontal 这对兄弟,因此在这对兄弟里的元素全是以水平方向排列。
使用 EditorGUILayout.Space() 可在两个元素之间空出一行。
它们的规律就是方法名都是以 Field 结尾,大伙们可以根据绘制的类型选择相对应的方法。
一般括号里面的参数,第一个为绘制该字段的名字(string 类型),第二个为绘制该字段的值,如下所示:
1 为标签字段
2 为整形字段
3 为文本字段
4.为文本区域
滑块:EditorGUILayout.Slider()
EditorGUILayout.Slider()用于绘制一个滑块,从上可知:
第一个参数是滑块的名字
第二个参数是滑块要改变的值
第三和第四个参数是滑块的范围
效果如下图所示:
进度条:EditorGUI.ProgressBar()
EditorGUI.ProgressBar()用于绘制一个进度条,从上可知:
第一个参数是设置进度条的大小,类型是一个 Rect。
第二个参数是设置显示的值,
第三个参数是设置进度条的名字
提示:
1.第一个参数,我们使用了 GUILayoutUtility.GetRect() 工具类的 GetRect()方法返回一个设置好的矩形框,在案例里我们设置了一个 50*50 大小的矩形框。
2.第二个参数,我们使用 player.health / 100.0f。那是因为进度条的最大值为1,如果不除100的话,当滑块的值为1时,进度条便填满了,因此我们想让值与进度条的比例同步,那就除100吧(语文不好,不知道解释得如何)。
效果图:
帮助框:EditorGUILayout.HelpBox()
EditorGUILayout.HelpBox()用于绘制一个盒子(也可以看作矩形框),然后再盒子的里面显示提示信息,从上图可知:
第一个参数是传入提示信息
第二个参数是提示信息的类型
效果图;
错误类型
正常类型
警告类型
好了,至此,本篇内容算是结束了,大伙们可以利用刚刚学到的知识简单的设计一下自己的 Inspector 面板属性,体验体验,后面的教程会更加精彩,敬请期待吧。