NGUI:关于CalculateRelativeWidgetsBounds有时候计算得到的值为0的问题
首先,关于NGUI的这个用来计算一个结构层次所占的渲染尺寸的API,计算的结果肯定是不会错的,算出来为0,那肯定就是调这个函数的那一刻,你的UI的尺寸确实为0了。
之前遇到的问题,困扰我得有两周了,调ScrollView的ResetPosition复位总是不对,跟了代码发现就是这个API返回的值是0,当时换了方法来实现需求,结果今天又遇到了,用Table的RePosition的时候也被返回0.并且都是UI界面第一次被呼出来的时候才会这样。
偶然地想到我的界面上挂了一个Tween动画,界面呼入的时候localScal从0到1渐变!!!豁然开朗啊,第一次调起一个UI界面的时候,播放了这个动画,UI的localScale先被置为了0,这之后又调了这个函数来算UI的边界尺寸(这一切都是在同一帧中完成的),得到的结果当然是0了。
我靠。。被同事数落自己挖的坑,埋了自己那么久。。
特此记录一下,免得以后又遇到这种情况。
UI的Twenn动画对UI属性的修改可能会影响到之后对这个UI的一些操作,并且还不容易察觉,以后得特别注意了。
然后解决这个问题 我把切入动画的起始scale改成了0.1,不从0开始,这样算出来的边界尺寸就正确了。
或者以后遇到类似的问题 可以把诸如此类对UI的操作放到播切入动画之前,就不会出这种问题了。