美文网首页
降低界面的更新开销

降低界面的更新开销

作者: 此年此景 | 来源:发表于2017-08-27 18:07 被阅读0次
    避免“敏感操作”
    --NGUI
       1.元素隐藏显示-->FillAllDrawCalls
    FillDrawCalls常见原因:
    添加/删除元素时,穿插了其他UIDrawCall,例如一个Panel有DrawCall A,B等,在更新时A中穿插(根据Depth来的)了使用B的材质的UI,那么Panel就会变成ABAB。
    添加/删除的元素自成一个UIDrawCall(没有任何一个UIDrawCall和它匹配,或是没有包含这个Depth的)
        2.避免方式
    尝试让插入的元素能够合入现有的UIDrawCall(在Panel中放入一个全透明的Sprite占用这个Depth正好生产一个UIDrawCall,那么新的UI就能合入到这个UIDrawCall,缺点容错率低)
    通过scale=0或者是alpha接近于0来“隐藏”(尤其是冷却数字、冷却条,技能条),alpha为0和接近于0有本质区别,scale=0并不会把顶点删掉,而是把它缩放为0的,网格、DrawCall还在,也会参与网格重建,好处在于不会引起上面产生的峰值
    --UGUI
    元素的position赋值-->Canvas.BuildBatch
    
    优化选项(NGUI)
    static:优化移动UIPanel时(跳过LateUpdate的轮询)
    visible:优化大量网格更新时
    

    相关文章

      网友评论

          本文标题:降低界面的更新开销

          本文链接:https://www.haomeiwen.com/subject/whcidxtx.html