当前位置: 首页 > news >正文

Unity项目性能优化列表

1、对象池

2、检查内存是否泄露。内存持续上升(闭包、委托造成泄露)

3、检查DrawCall数量,尽量减少SetPassCall

4、尽量多的利用四种合批

  1. 动态合批(Dynamic Batching)
  2. 静态合批(Static Batching)
  3. GPUInstancing
  4. SRP Batcher

动态合批消耗内存把多个网格组合在一起合并提交渲染, 既然是网格合并,那对合并的物体有很多要求

静态合批就是提前把物体的网格缓存一份。

GPUInstancing是利用GPU控制顶点动画,略过了CPU额外处理那一步

SRP Batcher的原理是缓存渲染数据和渲染状态,只有这俩发生变化时才会提交Drawcall,因此也是浪费内存换效率的做法。

5、3D游戏 LOD技术

LOD原理就是把远处的物体换个低模,顶点和面数少了,渲染压力自然就下来了。

6、资源压缩节约内存

7、伤害跳字数量多优化

 一般的几个跳字可以不管,但如果UI非常多,并在在字体发生各种动画时可能会造成DrawCall多浪费的情况,因此可以利用顶点合并,或者GPU控制顶点等骚操作优化伤害跳字。

8、加载卡顿时考虑分帧加载或预加载

加载大量对象卡顿时,可以考虑分帧加载,或者预加载,这个要酌情考虑。

9、检查Overdraw

检查一个位置是否overdraw,打开工具看到颜色发红的地方就说明这个地方的颜色被多次渲染了,大概率是由于透明物体导致的。 

UGUI优化

1、使用图集,同一图集的UI一次渲染只占一个DrawCall

2、动静分离,频道改动的可以单独一个Canvas。

3、图集之间不要有TextMeshPro穿插,TMP虽然是文字,它的底层是用图实现的,只要穿插就会有额外的DrawCall出现,导致同一个图集的UI也无法放同一次DrawCall渲染。

http://www.lryc.cn/news/492474.html

相关文章:

  • 【系统架构设计师】高分论文:论软件架构的生命周期
  • 流量控制和拥塞控制的区别
  • CSS 背景、阴影和混合模式
  • 第49届ICPC亚洲区域赛,非凸科技再次支持上海赛站
  • 良好的并发编程习惯之封闭(Confinement)
  • docker镜像、容器、仓库介绍
  • 写个添加球队和展示球队的功能--laravel与inertia
  • 自制Windows系统(十)
  • World of Warcraft /script SetRaidTarget(“target“, n, ““) n=8,7,6,5,4,3,2,1,0
  • Rust中Tracing 应用指南
  • 海外媒体发稿:根据您的要求编写二十个文案标题方法-华媒舍
  • gitlab:使用脚本批量下载项目,实现全项目检索
  • macos 使用 nvm 管理 node 并自定义安装目录
  • 网络编程第一课
  • 玩转 Burp Suite (1)
  • 【linux】(16)date命令
  • 算法笔记:并查集
  • 密码系统设计实验3-2
  • Spring Boot 与 Spring Cloud Alibaba 版本兼容对照
  • SVD 奇异值分解
  • C++设计模式-享元模式
  • AI加持,华为全屋智能品牌升级为“鸿蒙智家”
  • 洛谷刷题之p1631
  • uniapp前端开发,基于vue3,element plus组件库,以及axios通讯
  • 在Unity中实现物体动画的完整流程
  • 【云计算网络安全】解析 Amazon 安全服务:构建纵深防御设计最佳实践
  • 【Andriod ADB基本命令总结】
  • ChatGPT如何辅助academic writing?
  • Day 27 贪心算法 part01
  • 使用Python实现目标追踪算法