Unity插件开源BuildReportTool可监控 可优化 资源多了会卡 支持最新2017 2019版本
没有什么可吐槽的,旧版本的已失效
(底层文件结构和内容都变了,旧的5.X时代的report工具没更新,就很难兼容了,这是最新兼容版本)
开源地址
今天看到Unity在github上的一个项目: https://github.com/Unity-Technologies/BuildReportInspector
具体分析
其实每次在build的时候Unity会在 Library/LastBuild.buildreport 下生成这个文件,记录BuildReport数据(二进制的YAML徐序列化)。工具会把文件重命名保存到Assets/BuildReports下(可以用文本方式浏览看看)。 也就是没有从 IPreprocessBuildWithReport, IPostprocessBuildWithReport 这些接口中获取BuildReport数据。 有些没有public的api也只能反射: var analyzeMethod = report.strippingInfo.GetType().GetMethod("Analyze", System.Reflection.BindingFlags.
序列化的就是这个对象结构:
构建Unity的报告Inspector
此存储库包含一个Editor脚本,该脚本实现了Unity 18.1中添加的BuildReport类的Inspector 。
BuildReport类允许您访问有关上一次构建的信息,并帮助您分析构建项目所花费的时间以及构建磁盘大小的足迹。此信息可以帮助您改善构建时间和构建大小。
此脚本允许您在编辑器UI中以图形方式检查此信息,使其比API脚本更容易访问。
Disclaimer
此软件包按原样提供,不受Unity Technologies的支持。我们计划在未来的Unity版本中为BuildReport功能添加内置和支持的UI,但在此之前,此软件包将演示如何在今天访问BuildReport信息。
特别是,此包从BuildReport Scripting API(https://docs.unity3d.com/ScriptReference/Build.Reporting.BuildReport.html),获取信息,但BuildReport对象中的某些信息尚未公开。
该软件包使用SerializedObject类通过Unity的序列化系统访问其中一些内部。由于内部数据结构可能会发生变化,因此该软件包可能会在Unity的未来版本中停止运行。
用法
将 BuildReportInspector.cs 编辑器脚本添加到项目中的Editor文件夹以进行安装。安装后,可以在检查器中查看BuildReport对象。
在进行构建时,或者通过选择包含BuildReport数据的文件,您可以获取BuildReport对象作为BuildPlayer API(https://docs.unity3d.com/ScriptReference/BuildPipeline.BuildPlayer.html)的返回值。
在进行构建时,Unity的默认构建设置会将此类文件写入Library / LastBuild.buildreport(将来可能会更改)。 此脚本添加了一个方便的菜单快捷方式 (Window/Open Last Build Report),,将该文件复制到Assets文件夹并选择它,以便您可以使用Build Report Inspector对其进行检查。
在Inspector中打开后,您可以使用窗口顶部的弹出菜单选择要查看的数据。 Build Report Inspector可以显示以下数据:
Build steps构建步骤
制作你需要的不同步骤,他们花了多长时间,以及在这些步骤中打印了什么消息(如果有的话)。
Source assets资产来源
构建中使用的所有资产的列表,以及它们对构建大小的贡献程度
Output files输出文件
构建所写的所有文件的列表
pc包,输出文件特别多:
Stripping剥除
对于支持引擎代码剥离的平台,添加到构建中的所有引擎模块的列表以及导致它们包含在构建中的原因。