这阵子一直忙着修改公司的一个传家程序–中控程序,说实话我是不乐意去阅读其代码的。
好了说正事,其实是软件的一个遗留问题,关于toggle组件的。
问题
这个toggle的功能就是需要根据value的值来执行不同的代码块。而问题就在于,不知道是哪一代程序在控制toggle的代码的awake函数中初始化获取了toggle的ison值并将其设置为false,并以这个值来修改其value的值。
这看上去没啥问题对吧,我也是这么认为的,但是出问题了,因为toggle在运行时他的父类的状态是隐藏的,导致后续将其父类状态设置为true的时候也同事执行了toggle的值设置为了false,即使其值本身就是false,但是unity就是认为其值发生了改变,所以执行了false的代码块。
解决方法
解决方法也很简单,不去处理初始值,而在一切运行之前就将toggle的ison设置为false即可。这个东西还挺像我的世界的观察者的