unity 优化

游戏上线前需要做一次整体的性能优化、检测。
很多时候优化大同小异。
记录一下,以防后面其他项目做检测时漏掉。

工具相关

  • 使用 apksinger 代替 jarsigner 进行签名(提升android安装率100%)
  • 导表工具提取相同 string (策划csv有很多相同string时,把相同string提取出来可以省内存) (相关数据见图1)

资源相关

  • 贴图压缩 pvretc 优化显存
  • alpha 分离
  • 音频force to mono (双声道变单声道); ios使用mp3格式(硬件加速)
  • 动画 animationCompression 设置 keyFrameReduction (减少关键帧)
  • 网格压缩(减面)
  • assetbundle 构建时加入 DisableWriteTypeTree, 使用lz4压缩

游戏内容

  • 关闭垂直同步,限帧(减少cpu耗电)
  • NGUI 界面 drawcall 优化
  • 协议压缩(自定义压缩格式、protobuf(减少用户网络流量))
  • 捕获unity报错日志上传服务器 Application.logMessageReceived (不能用协程上传服务器,异常会导致携程死循环)
  • 对象池(解决unity 内存碎片问题)
  • 读写目录(Application.persistentDataPath)写入不了时,尝试其他目录
  • IMEI 需要权限才能获取,如果获取不到可以Guid.NewGuid生成唯一ID缓存到本地当成唯一标识(用户统计)
  • C# 非托管代码MemoryStream等是否有调用dispose()

热更相关

  • 多个备用CDN,访问失败时进行轮询
  • CDN上的文件必须是唯一的(文件名带版本号、md5
  • 不能修改文件名的文件(ver.txt) 必须回源,或者直接访问源站
  • 同步CDN时,版本文件最后进行同步

相关资料:

浅谈unity内存管理
unity 优化实战训练营
unity手册 了解unity中的优化
Unity制作人专场:《Unity AAA游戏深度优化》主题演讲
unity 渲染优化教程


一些测试数据:

图1

你可能感兴趣的:(unity 优化)