一. 工具概述

1.1 Build Report Tool 简介

Build Report Tool 是一款强大的 Unity 插件,专门用于分析应用程序的构建结果,帮助开发者深入了解构建包体的组成成分。该工具能够详细展示构建包中各个资源的大小占比,识别冗余资源,并提供直观的资源分类视图,是优化包体大小的首选工具。
在这里插入图片描述

1.2 AssetChecker 简介

AssetChecker 是 UPR(Unity Performance Review)提供的资源检测工具,支持所有版本的 Unity 项目。它不依赖 Unity Editor,绿色运行且检测速度极快。该工具可以本地运行,通过命令行操作,能够快速发现资源文件中存在的问题,并与 CI/CD 工具集成实现自动化检测。
在这里插入图片描述


二. Build Report Tool 安装与使用

2.1 安装方法

下载 “Build Report Tool” 并导入项目:官方下载地址
在这里插入图片描述
或者自己在网上搜索,实在找不到的可以点击文末卡片后,回复【BuildReport】获取3.11.9和3.9.3版本:
在这里插入图片描述

2.2 基本使用流程

  1. 生成构建报告

    • 完成项目构建后,打开 Window > Build Report Tool
    • 点击Open选择最新构建版本,点击生成报告
      在这里插入图片描述
    • 在Options中可以设置文件保存位置和工具显示信息 在这里插入图片描述
  2. 报告结构分析

    • 构建总览:显示总体构建大小、场景数量、资源数量
    • 资源大小分布:按类型展示纹理、模型、音频等资源占比
    • 依赖关系图:可视化资源之间的依赖关系
      在这里插入图片描述
  3. 关键数据分析

    • 识别占用空间最大的资源类型
    • 查找未使用或冗余的资源
    • 分析资源重复情况
      在这里插入图片描述

三. AssetChecker 安装与使用

3.1 工具获取与安装

  1. UPR 官方网站下载 AssetChecker 工具包
  2. 解压到任意位置,无需安装 Unity Editor

3.2 命令行操作

# 1. 打开命令行并切换到工具目录
cd /D [AssetChecker目录路径]

# 2. 查看帮助信息
assetcheck.exe -h

# 3. 生成配置文件(可选)
assetcheck.exe generate-config

# 4. 检测Unity工程
assetcheck.exe --project="Unity工程路径" --projectId="UPR项目ID"

UPR项目ID:是在URP后台创建项目的ID:
在这里插入图片描述

3.3 检测结果查看

  1. 本地文件查看

    • 查看 rule_report.yaml 文件获取详细检测结果
    • 分析 assetcheck_result.json 文件
  2. UPR网站查看

    • 登录 UPR 网站,进入对应项目
    • 查看可视化报告和优化建议

根据报告查看每一项,再看详细的优化建议,根据自己的需求查看是否需要修改:
在这里插入图片描述


四. 优化实战案例

4.1 音频资源优化

通过 AssetChecker 检测音频资源问题,实施以下优化措施:

  1. 启用 Force To Mono

    • 对于左右声道相同的音频,启用此选项可减少内存使用和空间占用
    • 注意:左右声道不同的音频不要启用
  2. 选择合适的加载类型

    • Decompress On Load:适用于压缩后 < 200KB 的短音效
    • Compressed In Memory:适用于压缩后 > 200KB 的常规音效
    • Streaming:适用于背景音乐或较长音效
  3. 优化压缩格式

    • 移动平台优先使用 Vorbis/MP3 格式
    • 短常用音效使用 ADPCM 格式以提高解码速度
    • iOS 平台使用 MP3 格式以获得硬解码支持
  4. 调整采样率

    • 移动平台将采样率设置为 22050Hz
    • 避免使用过高的采样率(如 48000Hz)增加不必要的功耗

4.2 纹理资源优化

  1. 使用 POT(Power of Two)纹理

    • 使用像 Sprites Optimizer 这样的工具将 NPOT(非 2 的幂)纹理转换为 POT 尺寸
    • 这可以显著减少构建大小,提高渲染速度和内存效率
  2. 压缩格式选择

    • 根据目标平台选择合适的纹理压缩格式
    • 移动平台使用 ASTC 或 ETC2 压缩格式
  3. 最大尺寸控制

    • 根据实际显示需求设置纹理最大尺寸
    • UI 纹理通常不需要超过 2048x2048

4.3 清理无用资源

  1. 使用 Asset Hunter PRO

    • 通过 Ctrl+H 打开插件
    • 分析项目中未使用的资源
    • 备份并清理无用资源
  2. 注意事项

    • 清理前务必备份资源
    • 确保分析所有场景和资源组合

五. 优化效果评估

5.1 优化前后对比

在这里插入图片描述
上图对应的优化步骤:

  1. 原始包大小
  2. 将Android平台图修改为ASTC格式
  3. 关闭模型读写
  4. 过大纹理:Max Size 修改为原来的一半(如:2048改1024)
  5. 将3,4 的修改重新打包Bundle包和apk
  6. 关闭17个模型读写,再次重新打包

上图第3和第4个apk对比:关闭模型读写时,未重新打包Bundle资源包测试,所以包体大小未见变化。
后续使用AssetChecker检测发现工程中还有17个模型读写没有关闭,重新打包后包体缩小1M

由于原游戏中包体资源多且未经过优化出了。本次初步优化后:APK 安装包整体缩减380M左右

5.2 性能平衡考量

优化时需要平衡不同指标:

  • 音频流加载减少内存但增加 CPU 开销
  • 纹理压缩减小包体但可能影响视觉效果
  • 根据目标设备性能特点选择合适的优化策略

六. 最佳实践总结

  1. 定期检测:将资源检测纳入日常开发流程,定期运行分析
  2. 多维度优化:从音频、纹理、模型等多方面系统性优化
  3. 目标导向:根据目标平台和设备特性制定优化策略
  4. 数据驱动:依据检测报告和数据做出优化决策
  5. 平衡性能:在内存、CPU、包体大小之间找到最佳平衡点

通过结合使用 Build Report Tool 和 AssetChecker,开发者可以全面掌握项目资源状况,系统性地进行包体优化,最终交付高性能、小体积的优质应用程序。

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐