Unity踩坑之脚本无法初始化public字段

问题描述

在脚本中public的字段,设置了初始值,却在unity的Inspector窗口无法正确加载



这是为什么呢?


问题原因

在Unity中,当你在脚本中设置一个公共(public)字段的初始值时,该值会显示在Inspector窗口中。然而,有时候你可能会遇到Inspector窗口中显示的值与你设置的初始值不一致的情况。这可能是由以下几个原因导致的:

  • 脚本实例化顺序:如果有多个脚本同时设置同一个字段的初始值,它们的实例化顺序可能会影响最终的值。Unity默认情况下会按照脚本在游戏对象上的顺序进行实例化,因此后面的脚本可能会覆盖前面的脚本设置的值。你可以通过在脚本上使用[SerializeField] 特性来控制字段的序列化顺序,或者在脚本的Awake()或Start()方法中手动设置字段的值来解决这个问题。

  • 预设(Prefab)的实例化:如果你在Inspector窗口中修改了预设的字段值,并将该预设拖放到场景中创建实例,那么实例化后的对象会继承预设中的值,而不是在脚本中设置的初始值。

  • 重置字段值:有时,当你在Inspector窗口中手动修改了字段的值,并且之后再运行游戏或重新编译脚本时,Unity会将字段值重置为Inspector窗口中的值,而不是在脚本中设置的初始值。这是为了确保你在编辑器中进行的修改能够保留下来,以方便调试和迭代。

解决方法

  • 在Inspector窗口重置值


自行修改你想要的值

  • 控制序列化顺序

在脚本中添加[SerializeField] 特性


后话

这个是很多新手都会踩坑的问题,后面多注意即可,非必要就不使用public,而是使用protected/private

Enjoy ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值