unity中[SerializeField]特性以及Inspectors中变量的操作

如果想要在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重置。

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值