引
如果想要在unity的Inspector窗口中显示你定义的脚本变量,除了使用public访问修饰符外,还可以在private私有变量前添加一个**[SerializeField]**特性。
进一步学习
1.其他特性
当然Unity还有一些其他有用的特性,我就不复制粘贴了,大家可以参考下面的大佬写的:
1.https://www.bilibili.com/read/cv3477046
2.Inspector窗口编辑变量的一些注意事项
我们上面实现了把脚本中的变量显示到unity的Inspector窗口中,但是为什么要这样做呢?答案肯定是为了可以在unity中进行参数的编辑而不需要改代码去。这里有几个需要注意的地方。
- 注:把上面引中的参数值作为默认值,而且更改public的字段和带有[SerializeField]特性的private字段结果时相同的(方便起见 我只改了public做例子)
(1)没有点击Play修改变量值
这时代码中的数值不会改变,但点击Play之后会执行Inspector窗口中的数值lxx而不是zgx。
(2)在play过程中修改Inspectors中的变量值
准备工作:把debug.log函数放入Update中,这样便于观察变量修改时的输出
运行游戏,运行过程中将zgx修改成lxx观察console窗口中的打印结果。然后结束游戏,再观察修改的lxx的变化。
实践证明,当你运行过程中修改参数,Unity时可以检测到的并且会随你的更改而变化,当你结束游戏后,这个参数会回到你运行游戏之前的参数。(这里涉及到了序列化,如果你想更深入,可以去查查它)
(3)修改代码中的值 Inspector窗口会变化吗?
如果你已经将脚本挂载到了节点上,Inspector中的值不会随你再去改变代码中的字段值而改变,如果你改变了脚本中的字段值,请回到Inspector窗口中对其进行Reset重置。