Unity Editor 基础篇(二):自定义 Inspector 面板

发表于2017-09-22
评论0 7.8k浏览

下面和大家介绍下自定义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()用于绘制一个滑块,从上可知:


  1. 第一个参数是滑块的名字

  2. 第二个参数是滑块要改变的值

  3. 第三和第四个参数是滑块的范围


效果如下图所示:



进度条:EditorGUI.ProgressBar()





EditorGUI.ProgressBar()用于绘制一个进度条,从上可知:


  1. 第一个参数是设置进度条的大小,类型是一个 Rect。

  2. 第二个参数是设置显示的值,

  3. 第三个参数是设置进度条的名字


提示:

    1.第一个参数,我们使用了 GUILayoutUtility.GetRect() 工具类的 GetRect()方法返回一个设置好的矩形框,在案例里我们设置了一个 50*50 大小的矩形框。


    2.第二个参数,我们使用 player.health / 100.0f。那是因为进度条的最大值为1,如果不除100的话,当滑块的值为1时,进度条便填满了,因此我们想让值与进度条的比例同步,那就除100吧(语文不好,不知道解释得如何)。


效果图:



帮助框:EditorGUILayout.HelpBox()



EditorGUILayout.HelpBox()用于绘制一个盒子(也可以看作矩形框),然后再盒子的里面显示提示信息,从上图可知:


  1. 第一个参数是传入提示信息

  2. 第二个参数是提示信息的类型


效果图;


错误类型


正常类型


警告类型



好了,至此,本篇内容算是结束了,大伙们可以利用刚刚学到的知识简单的设计一下自己的 Inspector 面板属性,体验体验,后面的教程会更加精彩,敬请期待吧。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: