Unity Inspector窗口可编辑的脚本变量
Inspector
可编辑的脚本变量
默认会显示的变量
在Unity中,为了方便我们进行一些属性的设置及调试,我们所写的公有基础数据类型会显示在Inspector
之中,我们可以对他进行设置来更改它的取值。
显示私有变量
在有些情况下,设计代码的时候会设计一些私有变量,但是有希望这些变量可以在Inspector
窗口被显示或可编辑,便于后续的调试,但Unity默认不显示私有变量,我们需要手动进行设置让他显示出来。
在Unity编辑器中,显示私有变量的方法有两种,一种是打开Inspector
窗口的Debug
视图,私有变量将会呈灰色显示,并且无法更改它的值:
另一种方式则是添加SerializeField
特性,它可以让私有变量在Inspector
中直接可见并可以编辑:
显示自定义数据类型
在Unity中,自定义的类、结构体的变量无论是公有还是私有,都是不会被显示出来的,要想被显示出来需要使用特性System.Serializable
,它会将这个类视为数据类进行处理:
隐藏公有变量
在实际开发中,可能在一些参数上我们已经测试出来了合适的数值,并且不希望后续有人对他进行修改,而且因为代码互相的关联性无法直接设置成私有变量,这是就只能将他在Inspector
窗口中隐藏起来。
需要隐藏一个变量时,与显示私有变量同理,只需要添加特性HideInInspector
即可:
限制可以输入的取值范围
在一些时候我们可能编码时会对一些变量进行特殊的处理,这是会要求填写数值时只能限制在某一范围内,而单纯的口头或书面限制可能并不会让人遵守,这时候就需要物理代码层面限制。
在Unity中同样提供了一个特性来限制可输入范围[Range(最小值, 最大值)]
,添加了此特性的变量显示时会在输入框前添加一个滑动条,可以滑动进行设置,同时输入的任何一个大于或小于边界值的值都会被强制改为边界值,保证取值在需要的范围内:
其他特性
-
在
Inspector
窗口中显示加粗的标题对内容进行分割
如果我们一个脚本中设置的变量非常多的情况下,我们可能会需要有一个标题性质的文本对他进行分割或分类,这时可以杀死用Unity提供的Header
特性,它可以在窗口中增加一行加粗文本,可以通过文本的位置来判断:
-
在不同变量显示时进行换行
为了保持界面美观及与前面的变量进行区分,我们可以通过让变量进行换行显示,只需要用到Space
特性即可:
-
添加提示语
因为在Inspector
中没办法显示出来变量具体的类型,变量过多时我们可能也对某一些变量的作用会产生混淆,此时使用Tooltip
来进行标记说明是一个很好的解决方案,他将会让我们将鼠标放在变量名上时显示对应变量的Tooltip:
-
设置多行显示
对于一些字符串,可能会存储分行的多行信息,原本的显示框只能显示一行文本,使用Multiline(行数)
可以实现多行显示,默认会以3行进行显示,但是需要注意的是设置多行显示并不会让文本进行自动换行显示:
-
设置多行显示并且自动换行
对于一些特殊的数据,我们在编辑时就会添加换行,或者对于一些数据读取时,我们希望它自动换行来提高可读性,这是可以用到Area(最小显示行数, 最大显示行数)
这个特性,他会将长文本自动换行,超过最大显示行数会在文本框右侧显示滑动条便于快速找到所需内容:
-
为属性添加方法
对于部分属性,我们提供了一个初始值,并且允许进行修改其他值,如果最终其他值不合适,我们想要将初始值添加回来,这是可以给这个属性添加
ContextMenuItem("名称", "方法名")
的特性,它会使我们右键该属性的时候出现额外的我们设定的选项,但是要注意的是,这里提供的方法只能是无参无返的函数,是否为公有函数并没有任何影响:
-
为函数添加特性使其可以在
Inspector
窗口中运行
对于某些情况,我们可能需要一些函数在游戏运行前对一些数值进行检测或去重置一些属性值,这是可以给这个函数或方法加上ContextMenu("显示的方法名")
,此时可以在对应组件右侧三点打开菜单栏,在最下方看见我们添加的显示的方法名,可以通过点击这个按钮来调用方法(重置参数值的方法Unity也提供了函数Reset
,可以直接重写该函数实现):
-
多个特性叠加使用
在上面提到的特性基本上都能进行叠加使用,例如可以在限制范围时添加提示语等等,只需要将不同的特性用逗号隔开即可。