Unity 2020.1 beta中的BuildReport API已经更新,现已可以展示项目构建时的更多细节,信息可细化到资源层面,帮助优化迭代时间。
访问BuildOptions.DetailedBuildReport手册就能直接了解新API的使用方法,将Build Report Inspector(构建报告检视器)包导入项目中就能查看新的构建报告了。
大型项目的构建时间通常非常长,迭代速度也比较慢,若还要在多个平台上测试,耗时会非常多。
Unity 2018.1中我们首次推出了BuildReport API,让用户能看见Unity构建流程的信息。在构建时,资源大小会影响版本的体积,引擎的各个模块也会整合进版本中。自构建报告推出后,BuildPipeline.BuildPlayer会返回一个BuildReport对象,其中包含了构建流程中各步骤的信息。
在Unity 2020.1中,如果在BuildPipeline.BuildPlayer API函数中传入新的BuildOptions.DetailedBuildReport,BuildReport对象将包含更多的信息,有更详细的构建步骤,会指明哪个场景使用了版本中的资源。
构建报告检视器资源包
BuildReport API可用于编写分析项目构建时的自定义工具。
Unity提供有一个默认的Build Report Inspector用以展示API的使用方法。
Build Report Inspector包可以经由Unity Package Manager(包管理器)添加到项目中。点击界面中的Advanced菜单,勾选Show Preview Packages,在列表中找到Build Report Inspector,点击“Install”,等待安装完成即可。
Package Manager中的Build Report Inspector
你可以在这个GitHub代码库取得Build Report Inspector的脚本及实验性版本,也能为程序贡献自己的一份力。
代码库:
https://github.com/Unity-Technologies/BuildReportInspector
Build Report Inspector会在Window菜单中添加有一个Open Last Build Report(打开上次的构建报告)菜单命令,该命令会复制上次构建时生成于可见路径下的报告,在检视器中显示其内容。
《BoatAttack》项目增量构建的简单构建报告
BuildReport.steps将带有额外的细节
若选择了BuildOptions.DetailedBuildReport构建选项,构建步骤将在新的BuildReport.steps中列出。
为了避免条目过于冗杂,时长小于1毫秒的构建步骤将被忽略。新的步骤报告将包括:
资源加载和写入时间
垃圾收集时间
资源依赖的处理时间
自定义Asset Bundle构建细节和次数
BuildOptions.DetailedBuildReport手册页面 用例子演示了如何启用该选项。
手册(目前仅有英文版):
https://docs.unity3d.com/2020.1/Documentation/ScriptReference/BuildOptions.DetailedBuildReport.html
下方的例子中,我们修改了示例文件,在《BoatAttack》项目构建中使用了BuildOptions.DtailedBuildReport:
using UnityEditor;using UnityEngine;public class DetailedBuildReportExample : MonoBehaviour{[MenuItem("Build/DetailedBuildReport example")]public static void MyBuild(){BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();buildPlayerOptions.scenes = new[] { "Assets/scenes/MainMenu.unity", "Assets/scenes/_levels/level_Island.unity" };buildPlayerOptions.locationPathName = "DetailedReportBuild/MyGame.exe";buildPlayerOptions.target = BuildTarget.StandaloneWindows64;buildPlayerOptions.options = BuildOptions.DetailedBuildReport;var buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions);}}
右滑查看完整代码
如果将上方脚本添加到《Boat Attack》项目的Assets/Editor文件夹中,点击编辑器菜单中的Build/DetailedBuildReport,项目将会开始构建。在构建结束后,报告中将包括进额外的数据。
如果遵循上方说明使用Window→Open Last Build Report命令,报告中将带有额外的步骤信息:
《Boat Attack》中增量构建的详细报告
额外的信息可以帮助你精确地找到构建时耗时较长的资源,用更轻量的“开发”版本取代之,减少迭代时间。
查找所有使用某个资源的场景
在替换大体积资源时,知晓资源所在的场景可能有助于整个流程。
若在构建时启用了BuildOptions.DetailedBuildReport选项,场景信息将作为BuildReport.scenesUsingAssets的成员在BuildReport构建报告中显示出来 。
详细信息可在ScenesUsingAssets一栏中查看:
《BoatAttack》项目中资源在各场景中的使用情况
在开发期间,将资源替换为更小的文件,或干脆不让场景引用资源,直接创建构建配置文件,可以减少迭代的时间。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.