Unity面板究极优化

         首先对于大项目来说UI首选一定的UGUI,目前没有啥可选的余地。多一点都是对性能的负担,UGUI底层基于多线程技术,可以有效分担压力,对于一些不是那么重的面板几乎无感。

        无论其他面板只是在此基础上修改的,但每多一层,计算机难免就得多一道计算,因此目前最优解一定是UGUI。

        这两天频繁的被问面板优化,该做的都已经做过了但还是不行,达不到要求该怎么办呢?

UGUI性能问题一般分为四种:

  1. Canvas  batch-build过长,通常是drawcall问题
  2. Canvas  Over-dirty 次数过多,频繁销毁创建
  3. 生成UI网格顶点时间过长
  4. GPU片元着色器利用率过高

        UGUI的drawcall是由c++完成的,因此对于同一个canvas下的图片我们要尽可能采用合批,无论它是静态合批还是动态合批,以降低drawcall,提高效率

合批的过程:

根据UI面板的深度进行排序

检查UI面板图片的遮盖关系

检查材质对于相同材质进行合批

        以上这些是在unity里c++部分完成的,因此对于轻量级的面板,打开一般无感,能够很流畅的打开

通常UGUI打图集是一招遮百丑的技术方案,很好用,效率也非常高

        为了避免面板卡钝出现问题,优化好UI,因此在搭建面板之前一定要竖立好规矩:

1、动静分离。建立两个Canvas面板将会动态绘制,可能触发重构的面板与静态面板分离

2、将所有可能打断合批的面板移到最下层,做好面板互斥,避免无用UI面板重叠出现

3、不使用Layout组件,最好自己用代码做好管理

4、Canvas的RenderMode尽量使用Overlay模式

5、不使用Text组件,使用TMP(TextMeshPro)组件代替

6、尽可能关闭面板上无用的组件系统,(比如关闭Raycast Target,尽量仅在最下一层面板开启)

7、对于嵌套的Canvas,OverrideSorting属性会打断射线,可以降低层级遍历

8、对于UI对象查找尽量不使用Find来进行查找,做好标签进行查找

9、美术图片尽量不要带有透明部分,图片制式要能被2整除

10、至少要简单了解UGUI特性和字体问题

11、字体不要太小,否则可能会导致频繁重建

12、使用Font.RequestCharacterInTexture进行字体预加载,降低启动时间

13、对于不可见UI不要使用UI的透明度进行开关显示,因为它实际上依然在绘制

14、非全屏对话模式合理的使用OnDemandRendering接口,合理降频

15、优化UI Shader剪裁,根据需要合理剔除多余部分

16、对于背包商城部分合理使用对象池和动态图集,合理缓存

17、分帧加载背包商城

18、合理设计好面板的打开方式,对重型界面提前缓存

19、使用RectMask2D组件剪裁,剔除不必要部分渲染,使用规则的滑动列表

20、终极大招,找美术削图片质量,找策划削功能(没治只能这么干了)

21、适当重新设计面板的打开方式,减轻压力和负担

22、也可以根据UGUI源码自己改一套自己的UI管理模式框架

以上即是规矩,也是UGUI优化的要点

如果这些都做了,那可能还得排除考虑下其他部分设计是否合理,是不是因此影响了面板,出现了卡顿

非战斗,影响不到用户体验可以不做优化,一般帧数不少于20-30即可(用户感觉不到就行了)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/81889.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【李宏毅机器学习·学习笔记】Tips for Training: Adaptive Learning Rate

本节课主要介绍了Adaptive Learning Rate的基本思想和方法。通过使用Adaptive Learning Rate的策略,在训练深度神经网络时程序能实现在不同参数、不同iteration中,学习率不同。 本节课涉及到的算法或策略有:Adgrad、RMSProp、Adam、Learning …

数据结构之时间复杂度-空间复杂度

大家好,我是深鱼~ 目录 1.数据结构前言 1.1什么是数据结构 1.2什么是算法 1.3数据结构和算法的重要性 1.4如何学好数据结构和算法 2.算法的效率 3.时间复杂度 3.1时间复杂度的概念 3.2大O的渐进表示法 【实例1】:双重循环的时间复杂度&#xf…

一文解决JWT相同签名不匹配问题【JWT signature does not match locally computed signature.】

今天做项目的时候,涉及到一个支付记账的功能,想着不能将这些金额数据显示暴露的通过常规的请求体封装来进行传输,想着要是被中途抓包修改了不就麻烦了,所以考虑到这种安全性的需求,就利用上了JWT来进行数据的封装传递&…

Dubbo基于springboot学习笔记

本文参考:【优极限】最透彻的Dubbo教程(dubbo经典之作完整版),阿里分布式框架dubbo零基础实战教学_手把手地啊你读懂底层源码【完整版】_哔哩哔哩_bilibili 1、 互联网架构演变 (1)单一应用架构 把系统中…

AWS——03篇(AWS之Amazon S3(云中可扩展存储)-01入门)

AWS——03篇(AWS之Amazon S3(云中可扩展存储)-01入门) 1. 前言2. 关于 Amazon S32.1 介绍2.1.1 简述2.1.2 详细介绍 2.2 Amazon S3 好处和功能2.3 3. 创建S3存储桶3.1 创建存储桶3.2 修改访问权限 4. 简单实用4.1 上传图片文件4.2…

2023年深度学习最新研究成果

LLMs领域 AGI领域 无剑芯片设计平台 三级标题 四级标题 五级标题 六级标题

电脑选购:6000元左右买到性价比超高的笔记本电脑,准大学生的购机指南

目录 一、ThinkBook 14 二、华硕灵耀14 2023 四、宏碁掠夺者擎Neo 五、惠普(HP)暗影精灵9 六、联想拯救者R7000P 2023 每年高考毕业季,许多即将进入大学的毕业生都会面临新电脑的选择,而对于喜欢玩游戏的同学,一般…

vscode extension 怎么区分dev prod

开发模式注入环境变量 使用vsode 提供的api

实现跨域的几种方式

原理 前后端的分离导致了跨域的产生 跨域的三要素:协议 域名 端口 三者有一个不同即产生跨域 例如: http://www.csdn.com https://www.csdn.com 由于协议不同,端口不同而产生跨域 注:http的默认端口80,https的默…

【云原生】kubernetes在Pod中init容器的作用和使用

目录 Pod 中 init 容器 1 init 容器特点 2 使用 init 容器 Pod 中 init 容器 Init 容器是一种特殊容器,在Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。 1 init 容器特点 init 容器与普通的容器非常像&#xf…

ffmpeg 4.4版本对MP4文件进行AES-CTR加密,和流式加密

对于ffmpeg的AES-CTR加密有两种方式,一个是普通的整个视频做加密,另一个是对视频做切片处理,然后进行加密。 一、对于普通的加密方式 直接使用下面的命令就行 ffmpeg -i animal.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes…

本地 shell无法连接centos 7 ?

1、首先检查是否安装ssh服务; yum list installed | grep openssh-server# 没有安装尝试安装下 yum install openssh-server 2、检查ssh服务是否开启 systemctl status sshd.service# 未开启,开启下 systemctl start sshd.service # 将sshd 服务添…

STM32F103——GPIO八种工作模式

目录 1、GPIO 基本结构分析 2、GPIO 八种工作模式 2.1 输入浮空 2.2 输入上拉 2.3 输入下拉 2.4 模拟功能 2.5 开漏输出 2.6 开漏式复用功能 2.7 推挽输出 2.8 推挽式复用功能 3、GPIO 八种工作模式特点及应用 1、GPIO 基本结构分析 STM32F103的 GPIO 工作有八种…

24届近5年南京理工大学自动化考研院校分析

今天学长给大家带来的是南京理工大学控制考研分析 满满干货~还不快快点赞收藏 一、南京理工大学 ​ 学校简介 南京理工大学是隶属于工业和信息化部的全国重点大学,学校由创建于1953年的新中国军工科技最高学府——中国人民解放军军事工程学院&#xf…

Android OkHttp源码分析--分发器

OkHttp是当下Android使用最频繁的网络请求框架,由Square公司开源。Google在Android4.4以后开始将源码中 的HttpURLConnection底层实现替换为OKHttp,同时现在流行的Retrofit框架底层同样是使用OKHttp的。 OKHttp优点: 1、支持Http1、Http2、Quic以及Web…

华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展

洞悉全球汽车产业格局,前瞻业界未来趋势。2023年7月27日-30日,时隔三年,重聚武汉国际博览中心,2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会,掀起行业热点新高…

boost beast http server 测试

boost beast http client boost http server boost beast 是一个非常好用的库&#xff0c;带上boost的协程&#xff0c;好很多东西是比较好用的&#xff0c;以下程序使用四个线程开启协程处理进入http协议处理。协议支持http get 和 http post #include <boost/beast/cor…

比较研发项目管理系统:哪个更适合您的需求?

项目管理系统对于保持项目进度、提高效率和确保质量至关重要。然而&#xff0c;市场上众多的研发项目管理系统让许多团队陷入选择困难。本文将对几个主流的研发项目管理系统进行深入分析&#xff0c;以帮助您找到最适合您团队的解决方案。 “哪个研发项目管理系统好用好&#x…

【Linux】常用的文本处理命令详解 + 实例 [⭐实操常用,建议收藏!!⭐]

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

【iPhone】手机还有容量,拍视频却提示 iPhone 储存空间已满

文章目录 前言解决方案 结语 前言 今天在用 iPhone 录像的时候突然提醒我 iPhone储存空间已满 你没有足够的储存空间来录制视频” 可我明明还有 20G 的容量 我非常疑惑&#xff0c;因为我之前还剩1个G都能录像&#xff0c;现在20G反而不行了&#xff0c;于是重启了手机&#…