NGUI TweenScale组件 卡延时导致图片刷新问题

本文地址:http://blog.csdn.net/t163361/article/details/50426063
前几天遇到一个图片不刷新的问题,不必现。后来发现通过在显示界面的时候下断点然后再运行,就会重现现象。
具体观察不显示的UI物体发现打开线框模式后,没有对应的模型点渲染。定位为对应物体的渲染模型没有生成
后来发现出问题的组件根节点上有个TweenScale组件做缩放。
每次显示前会调用
tweenScale.ResetToBeginning();
tweenScale.PlayForward();
最后跟踪到UIWidget.cs里面的UpdateTransform()这个函数.
此函数根据本组件世界坐标的变化与否判断组件是否移动,去触发
UIGeometry.cs中的ApplyTransfrom()更新组件的渲染mMat模型信息。

具体的导致异常的原因就是调用ResetToBeginning的时候,因为根节点缩放值为零,所以子组件的渲染模型坐标都是0,然后因为机器卡,在第一次触发Update更新的时候,tweenScale的时间已经结束,于是直接触发结束函数,此时UpdateTransform中的逻辑判断本组件未更新。而没有再次将mMat信息进行刷新。

修改办法就是将上面两个函数分开,显示的时候调用ResetToBeginning()。
同时在界面的Update里调用一次PlayForward()函数,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值