Unity性能优化:优化相关前提

Unity游戏安卓包运行卡的原因? Mono

{
首先来了解一下Mono虚拟机。
Unity将游戏运行在一个Mono虚拟机上,所以能实现跨平台的功能。
但是由于有Mono虚拟机的存在所以我们实际打出来的包=(游戏+mono),所以Unity打出的包会很大。
}

Profiler

{
可以查看很多性能有关的
在这里插入图片描述

}

DrawCall

{
DrawCall:就是cpu对图形绘制接口调用,CPU通过调用图形库接口,命令GPU进行渲染操作。一次调用就是一次DrawCall。所以如果调用次数多的话就会大量占据GPU的性能消耗。

DrawCall与性能:其实DrawCall造成的性能问题的元凶是CPU。因为CPU是发送命令的始作俑者,CPU发送一个渲染命令之后,GPU立即执行渲染命令绘制图形,等到渲染命令结束之后,CPU才可以继续发送下一个渲染命令。最耗费性能的原因是,CPU还要进行很多准备工作,检测渲染状态,提交渲染所需的数据,提交渲染所需要的状态。GPU渲染很快就能处理完,但DrawCall过多会导致CPU有很多额外的开销用于准备工作,CPU本身负载而GPU可能闲置了。 打个比方:拷贝1000个总大小1m的文件和单个大小为1m的文件,,明显1000个慢很多,DrawCall也是这个原理。

减少DrawCall:
我们可以打开Unity的Profiler面板查看Rendering下的DrawCall。可以发现Draw根据物体的种类的增多而增多,而不取决与数量
在这里插入图片描述

}

UnityStatistics统计面板

{
在这里插入图片描述

FPS:每秒帧数,表示渲染引擎处理一个渲染帧所花费的时间,时间越短fps就越长,人眼去看就越流畅。一般要让游戏保持肉眼可见的流畅度需要保持在30帧以上

CPU:计算每一帧需要花费的时间。越低说明计算越快。

render thread:渲染图片所需要的时间。越低越快。

Batches:可以看做是对Draw的合并的箱子,同材质或 Shader 的物件,可以合并成一个 Batch 送往 GPU。多个DrawCall可以视为一个Batch,一个Batch中包含多个DrawCall,节省了一部分CPU提交数据的操作。

Verts:顶点个数

Tris:三角面个数
}

传送门
优化相关前提
资源优化
渲染优化GPU
代码优化CPU

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值