查看: 4847|回复: 6
打印 上一主题 下一主题

[教程] Build Report Tool 插件使用教程

[复制链接]

955

主题

164

听众

7万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
59338
精华
28

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2017-7-1 12:01:23 |只看该作者 |倒序浏览
文章来源: 野猪工作室 - Build Report Tool 插件使用教程

功能简介

Build Report Tool(BRT)工具提供了一个很好的前端用于查看Unity编译信息。BRT显示了编译时包括的每个资源占用的存储空间。DLL列表:查看有什么Mono DLLs被编译到项目中,并且显示每个DLL占用的空间。

未使用资产列表:或许你想看有什么文件你不在使用了?使用未使用资产列表来查看有什么资源在编译时没有使用。保存到XML:保存编译报告到XML文件。可以存储多个编译报告提供参考或者发送给你的团队其他人。项目设置:查看编译时项目的项目设置。当自动编译时可以检查设置。适用于个人版和移动版。


步步为赢

新建一个空的工程,把BRT插件导入我们新建的工程中,BRT结构如图所示:

图片1.png


GUI:此文件夹里存放的是插件里面使用的UI纹理、皮肤等资产。
Scripts:此文件夹存放的插件的核心代码。
我们通过Window->Show Build Report打开编译报告窗口。如果BRT窗口没有显示出来,你可能需要重新启动Unity编辑器布局。选择Window>Layouts>Default。然后重新打开Build Report Window。
截图如下所示:

图片2.png


GetLog:通过此按钮我们可以获得编译的日志报告。
Open:可以打开编译过的日志报告。
Save:保存编译的日志报告。
Options:此选项的截图如下所示:

图片3.png


Main Options:
1. 在编译之后自动收集和保存编译信息,包括批处理模式的编译。
2. 允许删除使用的资产,慎用!
3. 根据创建的编译报告获得编译的文件大小。
4. 根据创建的编译报告获得导入使用资产的大小。
5. 根据创建的编译报告获得导入未使用资产的大小。
6. 根据编译报告获得Unity的项目设置。

Automatically show Build Report Window after building:这是枚举状态,包括Yes,but not during batchmode(使用,但是不在批处理模式下)、Never(从不)、Alawys(总是)。
Calculation level: 这是枚举状态,包括1 - Overview only (minimum calculations)(只显示概述数据。这是最快的,但是也是现实最少的信息。);2 - Do not calculate unused assets(只显示概述数据和未使用的资产列表。他不确定哪些资产是未使用的。在使用的资产列表中不会显示StreamingAssets文件夹下的文件。);3 - Do not calculate unused prefabs(将会计算所有的东西,出来不确定预设是否为未使用的。他仍然会显示其他未使用的资产。如果你在场景中使用了成千上万个预设时,当产生编译报告时可能会产生内存错误,尝试设置这个选项);4 - Full Report (complete calculations)(计算所有东西,会显示大小分类,使用的资产和未使用的资产列表。如果在一个大项目中,场景中有成千上万个文件,会减慢速度,如果产生内存错误,尝试设置为较低的级别)。

Editor Log File
Show in Explorer:会打开编辑器的日志文件所在的地址。
Set Override Log:重写打开的日志。
Clear Override Log:清除重写的日志。


Asset Lists
1. 在未使用的扫描资产中包括SVN元数据。
2. 在未使用的扫描资产中包括Git元数据。
View assets per groups of:每组显示多少资产。
Process unused assets per batches of:每次批处理处理的未使用的资产数。
File Filter Group To Use: Always use configured file filter group(总是使用配置的文件过滤器分组)、Use file filter group embedded in file if available\n(when opening build report files(使用嵌入文件的过滤器进行分组)。
Configured File Filter Group:显示分组使用的文件过滤器。
Build Report Files
Current Build Report save path:当前编译报告保存的文件路径。
Folder name for Build Reports:编译报告的文件夹名称。
Save build reports:保存编译的报告。In “My Documents”folder(保存在我的文档中)、Beside project folder(基于项目文件夹)。

Help&Info
Help(README):打开此选项显示的是插件的说明文件。
Version Changelog:打开此选项显示插件版本更新的

注意:如果你升级项目工程中的 Build Report Tool时,首先在导入新版本时删除当前的BuildReport文件夹。这将消除任何潜在的元数据与老版本的冲突。

如何使用?
通过Window->Show Build Report打开Build Report Window。
首先确保你已经编译过项目。如果没有,Build Report Tool 没有办法获得数据将不会工作。
然而,你不用担心你上次编译的项目和当前打开的项目不是同一个项目。所以,最好的建议是在编译你的项目之前,查看一下Build Report 窗口。你也可以保存编译报告为XML文件,或打开之前保存的XML文件。无论何时你编译项目时,Build Report 将会自动产生一个报告文件并且保存他。如果你不想Build Report Tool自动构建报告,你可以在Options中禁用掉他。


这里我们打开Unity5.x里面自带的工程案例看一下效果。通过Window->Show Build Report打开Build Report Window。这里野猪切换到了Android平台。编译之后如下所示:

图片4.png


构建报告分为五大类:
1. Overview:报告总结。
2. Project Settings:显示项目编译时使用的项目设置。
3. Size Stats:显示编译文件的大小,和一个资源的分解表来表示资产的占用空间。
4. Used Assets:显示编译时使用的所有资产,还有多少空间。
5. Unused Assets:显示编译时没有使用的资产列表。这用于找到不在使用的资产,可能想要删除来节省空间。

读者可以自行打开Project Setings、Size States、Used Assets、Unused Assets选项来查看不同选项标签下对应的内容。

为什么编译的大小大于Windows资源管理器显示的大小?

你可能发现Build Report Tool编译报告显示的大小不同于硬盘上显示的大小。这是正常的,这里有一个很好的解释: http://superuser.com/questions/66825/what-is-the-difference-between-size-and-size-on-disk。我想说的是当你的游戏/app从物联网上被下载时,需要传输的读取大小是Build Report Tool里显示的大小,为而不是从硬盘中读取的大小。注意:在Build Report窗口中读取的大小使用2位近似。

什么会被计算进编译报告中?
编译报告只会考虑资产的大小加上托管的DLLs。真实编译的最终大小会根据平台变大或变小。在桌面和移动编译时,编译的大小反应了 产生的sharedassets0.assets, sharedassets1.assets(等等)的大小。也计算了“Managed”文件夹(Mono DLLS、脚本编译的DLL加上项目中其他的托管DLLs)。所有其他的文件不会计入总编译的大小。甚至包括原声的插件。但是请注意,原声插件竟会显示在资产列表中,只是他们的大小不会计入“Total Used Assets Size”。在StreamingAssets文件夹的文件不会包括在“Used Assets Size Breakdown”表中。但是,他们全部的大小仍然会显示,并且这些文件仍然会包括在“Used Assets”列表中。在桌面编译时,你可能会发现一个“Unity Default Resources”文件。在他的内部包括的都是默认的资产。例如:默认的GUI Skin,GUI默认使用的姿态,默认着色器,内置基础模型等。这个文件也不会进入到编译报告中。讨论可以参考:http://forum.unity3d.com/threads/120081-unity-default-resources

在Windos中,产生的.exe文件也不会计入编译报告而是作为引用资源。.exe中的内容是使用Unity编译的标准的Windows程序,稍微有些改变。

在Web编译时,你的.untiy3d文件是你所有使用资产压缩的一个文档,你的Unity场景文件,你的脚本生成的托管DLLs,和任何编译必须使用的Mono标准库的托管DLLs,加上任何显示包含的任何托管DLLs。注意有几种Mono库由于浏览器安全的问题不能包括在web中。
在IOS编译中,全部编译的大小仅表示游戏在Xcode编译打包成一个.app文件前的大小。这个大小可能比打包成一个.ipa文件要小。注意:托管的DLLs意味着编译成.NET/Mono代码包含DLL文件。原声的DLLs意味着不是有.NET/Mono(通常是C/C++)编译成的DLLs。

场景中的预设实例:
如果你在场景中有一个预设实例,他们实际上不会计入编辑器的log日志信息中。为什么这样,我也不清楚。我猜测工作原理是这样子的:在真实运行时,预设的概念就不存在了。对于Unity而言,他们都只是游戏对象。实例化实际上只是复制/克隆一个存在的游戏对象(无论是场景中或是在资产文件夹中的预设)。(注意:你可以实例化复制一个游戏对象,即使他不是游戏对象)。因此,在运行时预设连接丢失了。一旦你运行游戏,预设实例被认为是正常的游戏对象。我想同样的事情也会发生在你的游戏中。所以项目中的预设不会包括在编译中。相反,场景中单独的预设实例会被进入文件大小(他们的大小会被计入场景中的大小)。

两个例外:
1. 如果你的预设在Resources文件夹中,他会包括在编译中。
2. 如果你的预设通过脚本变量/字段来引用,他们也会包括在编译中。
基本上这意味着你通过代码方式创建的你需要在运行时实例化预设(无论场景中是否已经存在了!),然后Unity别无选择,只能包括在编译中。
所以你会在“Used Assets”部分发现一些预设文件,但是没有显示读取的大小。这些预设是场景中使用的,不是Resources文件夹中的,也不是变量引用的。

提示:不用担心,Buil Report Tool本身在编译时不会被包含进去。


三.总结
上面野猪简单的介绍了Build Report Tool插件的使用。读者可以根据的自己需要进行适当修改扩展。有需要想研究他的工作原理的可以自行查看插件源代码。



已有 1 人评分纳金币 收起 理由
may + 5 很给力!

总评分: 纳金币 + 5   查看全部评分

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

may    

8830

主题

80

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52304
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

沙发
发表于 2017-7-2 02:00:55 |只看该作者
野猪先生的教程不错哦。。。希望继续推出
回复

使用道具 举报

13

主题

8

听众

4583

积分

中级设计师

Rank: 5Rank: 5

纳金币
13
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2017-7-3 09:07:13 |只看该作者
最新版的unity好像这个插件用起来有点问题啊
回复

使用道具 举报

may    

8830

主题

80

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52304
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

地板
发表于 2017-7-3 14:59:45 |只看该作者
毛毛虫 发表于 2017-7-3 09:07
最新版的unity好像这个插件用起来有点问题啊

是指5.6?还是2017
回复

使用道具 举报

1

主题

4

听众

1134

积分

助理设计师

Rank: 4

纳金币
21
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2017-7-4 14:00:53 |只看该作者
不错,挺好的
回复

使用道具 举报

1

主题

1

听众

977

积分

初级设计师

Rank: 3Rank: 3

纳金币
55
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2017-7-18 14:50:25 |只看该作者
2017 的確實無法使用
回复

使用道具 举报

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53456
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

7#
发表于 2017-7-23 13:41:46 |只看该作者
野猪先生还准备发新文章吗 期待
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-4-20 11:55 , Processed in 0.097805 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部