了解Unity的Inspector中的组件属性
游戏对象通常含有许多组件来保证它做出正确的表现。比如,选择Main Camera并注意Inspector面板。其中的一个组件就是Camera。如果他没有这个组件,他就会丧失作为摄像头的功能。它仍然会作为一个游戏对象存在在你的场景中,但是它不再有摄像头的功能了。
变量成为了组件的属性
任何游戏对象内的组件只不过是用来定义一个类的代码,无论你或者Unity是否亲手写了代码。我们只不过没有去修改这些Unity内置代码的权限。这意味着我们在Inspector中看到的属性只不过是一些变量而已。他们仍然存放着一些数据并等待着方法的调用。
Unity略微地改变着代码文件和变量的名称
当我们将我们的代码文件添加到游戏对象中时,我们的代码在Inspector中看起来就是一个组件。Unity只对他们做了一些细小的改动。你也许注意到了当我们向Main Camera内添加LearningScript的时候,Unity会将它以Learning Script的命名放在Inspector面板里。Unity会在文件名称的中间加一个空格来分开两个单词,同样,在变量名中也会出现同样的现象。注意变量number1他会被显示为Number 1,并且number2也同样会被显示为Number 2。Unity同样会将首字母大写,以此来改变Inspector中的可读性。
在Inspector面板中修改属性的值
你会在以下两种情境中修改属性的值
- 在Play模式下
- 在开发模式下
当你在Play模式下的时候,你的修改会立即被执行,这对你调试和想要看到结果的时候是非常有利的。
当你在Play模式下,你将会立即看到更改的效果。这对你调试和想要看到结果的时候是非常有利的。但是你需要记下来你的所有修改,应为当你停止Play模式的时候,你的修改并不会被保存下来
当你在开发模式下,你对属性所做的修改都会被Unity保存下来。这意味着如果你退出Unity并再次启动它,这些修改仍然会被保留下来。当然,直至你点击Play之前,你并不会看到你修改的结果。
你在Inspector面板中对属性值所做的修改并不会切实影响你的代码。改变你代码文件的唯一途径就是去开发工具里面直接编辑代码。你在Inspector面板中对值做的任何改变你也需要在代码中实现它们。
如果你想要去除你在Inspector面板中所做的修改,你可以将他们重置回你在代码中设定的值。点击你代码组件最右侧的齿轮图标,并选择弹出菜单中的Reset选项。
将变量列在Inspector面板中
我确定你现在纠结于变量声明语句开头的public是什么意思:
public int number1 = 2;
这意味着这个变量将是可见并且容易得到的。他将会以属性的形式显示在Inspector面板中,所以你可以操作这个变量中存放的值。这也意味着它可以通过点句法来使其他代码可以方便的调用它。你将会在第六章中学到关于点句法的更多知识。
动手时间
并不是所有的变量都要是public的。如果变量并不需要在Inspector面板中显示或者并不希望被其他代码调用,他也不会去让场景中的Inspector被杂乱的属性所充斥。在LearningScript中,做以下几步:
-
将第六行改为:
private int number1 = 2;
-
将第七行改为:
int number2 = 9;
-
保存文件
-
在Unity中选择Main Camera
发生了什么?
你将会注意到,Inspector面板中的属性,Number 1和Number 2都不见了
- 第六行:
private int number1 = 2;
前面的单词明确地生命变量是private,所以他不再会作为属性出现在Inspector面板中,现在他是一个私有的变量并存储数据。 - 第七行:
int number2 = 9;
这个变量也变得不可见了,但是你并没有明确地生命他是private。
如果你变量是否是public或private感到疑惑,那么,变量是private的。
明确声明变量究竟是public还是private是一个好习惯。
所以现在当你点击Play时,代码就像之前定义的一样运行了。只不过你现在没法再在Inspector面板中操作它们了。
网友评论