• UI优化策略高级技巧


    1:对象池中对象用scale=0或者alphaGroup=0来控制更佳, 当UGUI控件 scale=0时顶点数也会变为0

    2:如果出现了WaitingForJob或PutGeometryJobFence,则说明合并网格开销很大。

    3:Z一定要调为0,除非有3DUI穿插。

    4:Image为null或者alpha为0不能降低开销,Image为null还会不能合并。

    5:Item类型,如果当前图标和相邻图标(非当下图标)有重叠,那么则不会合并为2个drawcall。

    6:当某一个item类型处于选中,播放动画等状态,并且所处canvas下内容比较多的情况下,可以单独把item放到预先建好的动态canvas里,取消选中时再放回去。

    7:动态文字尽量不用UI/Effect/shadow和UI/Effect/Outline。(会使得文本的Mesh增加4倍)

    8:两个功能UI有一个需要隐藏的,例如新打开的界面完全遮挡住了之前的界面,可以在摄像机上设置一个层级不渲染,通过修改面板的layer来控制是否可见。

    9:如果修改的是Image组件上的Color属性,其原理是修改顶点色,因此是会引起网格的Rebuild的(即Canvas.BuildBatch操作,同时也会有Canvas.SendWillRenderCanvases的开销)。而通过修改顶点色来实现UI元素变色的好处在于,修改顶点色可以保证其材质不变,因此不会产生额外的Draw Call。

    10:在UI的默认Shader中存在一个Tint Color的变量,正常情况下,该值为常数(1,1,1),且并不会被修改。如果是用脚本访问Image的Material,并修改其上的Tint Color属性时,对UI元素产生的网格信息并没有影响,因此就不会引起网格的Rebuild。但这样做因为修改了材质,所以会增加一个Draw Call。

    11:CanvasGroup的经典使用

    -在窗口的GameObject上添加一个CanvasGroup,通过控制它的Alpha值来淡入或淡出整个窗口。

    -通过给父级GameObject添加一个CanvasGroup并设置它的Interactable值为false来制作一整套没有交互(灰色)的控制。

  • 相关阅读:
    2020中国最好大学排名.py(亲测有效)
    手机号码归属地的自动查询.py(亲测有效)
    网络图片的爬取和存储.py(亲测有效)
    百度360搜索关键词提交.py(亲测有效)
    亚马逊商品页面爬取(使用headers字段).py(亲测有效)
    淘宝商品页面的爬取.py(亲测有效)
    爬取网页的通用代码框架.py(亲测有效)
    匿名函数function前面的! ~等符号作用小解
    ng之自定义指令
    用nodejs搭建一个简单的服务监听程序
  • 原文地址:https://www.cnblogs.com/TravelingLight/p/8995171.html
Copyright © 2020-2023  润新知