Unity之属性赋值咋这样不对劲?

public修饰的属性值在具有初始化赋值的情况下,绑定场景物体后,在cs文件修改值不起作用,以Inspector面板序列化的值为准。

一、事因

在这里插入图片描述
如图可见:明明赋值的是(700, 200),怎么打印的是(150.0, 45.0)???

二、解密

细心的读者已经发现了VS Code顶部栏中间的“Test2”,这是笔者复盘的测试工程2。
在Test1工程的DataManager.cs中声明了m_Range的二维向量,并且赋值为(150, 45)
在这里插入图片描述
然后拷贝到Test2工程,并且直接绑定到场景的GameObject上!
再去打印的时候,就是步骤一的图示情况了~

说到这里,聪明的读者已经明白笔者想表达的意思了:
脚本中声明的public属性值在存在初始化赋值的情况下,我们“拖拽”其到场景物体上,就已经被unity序列化了,后面改动cs中的赋值是没有用的!只能在Inspector面板上改动。

写到这里笔者自己都笑了,简直和Error Pause一个级别的“bug”啊,0星,差评!
希望大家不要和笔者一样,犯这种低级错误~

ps:如果想要继续HideInInspector,就是不暴露在面板,但是想修改这个初始值,我们可以移除在GameObject上的绑定,再重新挂载即可啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值