重建部分的执行流程
image会调用SetColor方法,
(1)先判断当前颜色和要修改的颜色是否一致,逻辑如图。如果是true,
(2)逻辑图二,修改顶点脏标记。
(3)把这个组件重建可以Rebuild的Graphic
(4)Cavas每一帧都会执行willRenderCanvas方法,在performUpdate()当中加入Graphic的重建队列
重建都是围绕脏标记的,无论是Canvas的合批还是其他组件的重建都是因为某部分修改,标记了一个脏标记,然后进行重建。就像一个Canvas的重建,因为它可能有一大堆子物体。
有可能其他组件都不会更改,如果我改了一个组件引起了其他不常更改的组件重建了,就浪费了很多性能。
还有Txt。每一个字都是4个顶点,是一个名片,如果有一个字数非常多的text,可能在游戏的某一个部分,有一个说明,那么它可能在这个界面中有大量的text,而且字很多,你控制它显示的话,你就会让这个text进行全面的重建,这时候你就有可能遇到问题,这个时候就有可能会卡,这个情况就是因为面数和顶点数特别的多,而且这个重建毫无意义,因为没有改变,这种情况下,它们进行重建就是非常大的无端消耗。
网友评论