沉默了好长时间,也忙了好长时间,起始也 是一直在为自己没能好好的总结和思考找借口,想总结,时间总还是能抽出来的。最近积攒的坑感觉差不多够多,往出倒上一部分,也相当于为自己今后解决问题多留一些注意点。很多地方写的不准确和错的,还希望大家能够帮我指出。
1. 滚屏组件UIScrollView低性能问题:
如图是我们实现一个带子节点元素的滚动屏幕,括号 中的组件为非必须,像如果想要实现带点击事件的话,UIDragScrollView节点上就得挂上button脚本了。我之所以把结构画出来,是因为在UIScrollView和UIDragScrollView看似职能不一样的脚本中做了很多“重复”的事情。UIScrollView里有OnPress、 OnDrag的事件嵌套调用,这些都不是问题。为了实现拽的效果,UIScrollView的LateUpdate里还添加了一些后续的处理包括重调OnDrag,使得如果我们添加UIScrollView的OnDragFinish事件的话,该事件会被执行两次。而且LateUpdate里的调用会有明显的延迟,两个OnDragFinish事件间隔时间间隔较久。我个人不需要“拖拽”的效果,就将LateUpdate中的OnDrag
去掉。目前暂未发现有影响的BUG。
2. OnDragScrollView的BUG:
同样是上面的设计,我们可以实现一个翻页的滚屏。但是通常的设计是UIDragScrollView的组件是一页。但是如果我每一页中有多个UIDragScrollView呢?每个元素控制的坐标范围就不够一屏。这种情况下是没法直接全屏翻页的。。比如MoveRelative之类的,直接失效,最后只好暴力的指定上下页的元素。所以说NGUI其实还有很多不完美的地方,等着我们用心去发现和逐步的优化。
2014-9-20 22:07:55