发现了一个bug,时间原因没有深究解决方案,先记录一下
问题描述
现有ABC三个脚本,AB脚本为单例模式,有自己的静态Instance
B脚本中有一个C类变量
将A脚本挂到a物体上,B脚本挂到b物体上,C脚本挂到c物体上
将c物体拖到b物体上
开始运行后(b、c物体比a物体更早创建),a会获取b的instance,从这个instance获取c,并通过C的一个public函数Set改变c的private变量xyz,一段时间后由b通过挂在自己身上的c实例化一个c1出来
实例化出来的从c1并没有改变xyz的值,而是维持了默认值
经过Log得知,c的xyz确实被改变了,但是由c实例化出来的c1却没有获得和c一样的属性值,十分迷惑
接下来做了一些实验:
- 将xyz改为public
结果:c2的xyz数值改变 - xyz保留private,但逐个加上
[SerializeField]
结果:c3的xyz数值改变 - xyz改为public,但逐个加上
[HideInInspector]
结果:c4的xyz数值改变
问题分析
目前我啥也看不出来呢…有人遇到了想到解决方法麻烦说一下呀谢谢…