赞
踩
Build Report Tool README生成报告工具自述文件
您的游戏版本想试图减少小于 50 MB 吗?需要去看,你的资产正在吃占用的磁盘空间?
此工具提供了一个很好前端为Unity的生成信息。它显示包含在build 时的资产和多少存储空间。
注: 如果您要在您的项目升级Build Report Tool,首先删除之前导入的 BuildReport 文
件夹,,然后在导入新的,这将消除任何潜在与旧Build Report Tool的元数据文件冲突,。
若要显示Build Report Window,转到Window > Show Build Report。
当你这样做,如果生成报告工具不露面,您可能必须重置您的 Unity 编辑器布局。选择
Window > Layouts > Default.
然后再次尝试打开Build Report Window。
= = = 重要说明 = = =
以防你可能会引起Build Report Tool的任何生成错误,请尝试禁用Build Report Window自
动显示。
您可以通过打开Build Report window中,做到这一点去options,然后取消选中"Collect
and save build info automatically after building"。如果这不奏效,你可以只需删除
Build Report Tool中的文件作为最后的手段。
= = = 错误值 = = =
Build Report Tool从 Unity 编辑器日志文件中获取它的大部分信息。极大项目具有较大的
文件大小可能会得到错误的值。如果你有这种经历,请检查您的编辑器日志文件: 转到您
的Console控制台视图 (Window > Console,或按 ctrl + shift + C)。在控制台视图的
右上角,单击"Open Editor Log"按钮。
如果 Unity 编辑器日志文件本身显示错误的值,为您的文件大小,您可能想要提交一份
unity的 bug 报告 (转到Help > Report a Bug)。
= = = 如何使用 = = =
若要显示生成报告窗口,转到Window > Show Build Report.
请确保您有首先build生成项目操作。如果不是,生成报告工具有没有数据,也不会工作。
????????
However, it won't care if the project you built last time isn't the same one you
currently have open. So it's always best to build your project before you look
at the Build Report Window.
然而,它不会介意你生成最后一次的项目并不是同一个您当前已打开。因此,它总是最好生
成您的项目之前你查看Build Report Window。
你也可以将生成报告保存到 XML 文件,或打开之前保存的。每当您build生成项目,生成报
告工具将自动生成一个build报告,并将其保存。如果你不想生成的报告工具自动做到这一
点,你可以在选项中禁用它。
= = = 配件 = = =
生成报告分为五个主要类别:
1. Overview: 该报告的摘要.
2. Project Settings: 显示project settings 内容
3. Size Stats: 显示生成的文件大小和 一个列表 什么资源其中资产占用了什么上生成的
空间的百分比。
4. Used Assets: 显示的列表 *all* assets 包含在 build中的所有资源, 以及他们需要多
少空间.
5. Unused Assets: 显示资产清单中的项目, 是 *not* 用于生成 build. 这是用来找出哪
些资产不再被使用也许你可能想要删除以节省空间。
= = = 什么算在生成报告 = = =
The Build Report只会考虑您的资产size,加上托管的 Dll。您的生成的实际最终大小可能
大于或小于取决于平台。
在桌面和移动版本中生成大小反映程序生成的文件大小产生的 sharedassets0.assets、
sharedassets1.assets (以及等等)。也算是 (Mono Dll,您的脚本在已编译的 DLL 形
式,加上其他"Managed"的 Dll 项目中) 的"管理"文件夹中的文件。
所有其他文件都是不计入总生成大小。这包括本机plugins。
但要注意,本机plugins将仍显示在资产列表,它只是说他们不算在"Total Used Assets
Size"中。
"Used Assets Size Breakdown" 表中不包含您的 StreamingAssets 文件夹中的文件。然而
,仍表示他们总的大小,和这些文件还包含在"Used Assets" 列表中。
在桌面生成中,你会发现一个"unity default resources"文件在您的build中。像默认GUI
Skin、GUI、 shaders、built-in cube、 cylinder、capsule、white material、默认字体
等。
这些文件也不计算在Build Report内。
看到这里的讨论: http://forum.unity3d.com/threads/120081-unity-default-resources
在 Windows 中,您生成的.exe 文件也不被认为在生成报告中这被认为是一
个"boilerplate"的资源。你的.exe 文件的内容是built在Unity中,有一些次要的更改的所
有 Windows 程序中很大程度上标准。
在 web 版本中,您的.Unity3D 文件是压缩的存档,您使用的assets,你Unity场景文件,
您的脚本托管 Dll,任何托管 Dll 从Mono标准库,再加上任何托管您显式包含的 Dll。
注意有几个Mono的库不能包含 web 基于 web 浏览器的安全的考虑。
在 iOS 版本中,总生成大小仅代表游戏在它获取编译和打包成 Xcode.app 文件之前的大小
。一旦它获取打包成一个.ipa 文件大小可能会更小。
注意: 托管的 Dll 意味着 DLL 文件,其中包含已编译的.NET/Mono代码。本机 Dll 的意
思不是.NET/Mono (通常 C/c + +) 的代码生成的 DLL 文件。
=== Prefab Instances in Scenes ===
如果你在一个场景中有prefab的实例,他们其实不算在编辑log生成信息。确切地说,我不
确定。
我的猜测是事情的工作方式: 实际上在运行时,prefabs的概念不存在了。Unity而言他们
都只是游戏的所有对象。
实例化实际上只是重复/克隆现有的游戏对象 (是否它目前居住在场景中或作为一个prefab
的 assets 文件夹中存在)。(边注: 你可以实际使用实例化要复制一个游戏物体,即使它
不是一个prefab)
因此,在运行时,prefab连接会迷路。一旦你运行这个游戏,prefab实例被简单地视为常规
的游戏对象。同样的事情发生时你build你的游戏吧
所以您项目中的prefab文件不包括在build中。相反,在你的场景的prefab个体是统计在文
件大小 (从技术上讲他们的文件大小是在场景文件的文件大小)。
两个例外:
1.如果你prefab的文件是在Resources中,build中包含它。
2.如果您的prefab引用在一个脚本通过variable/field,build中包含它。
基本上这意味着如果您创建了您的代码,您需要在运行时实例化一个prefab (无论是否它
的一个实例在现场已经有没有),然后unity已别无选择的方式,但要包括在生成中。
所以你可能不会显示大小阅读"Used Assets"部分中找到一些prefab的文件。那些在场景中
采用prefab但不是在Resources的文件夹中,也作为一个变量引用。
=== Size Readings ===
当在 Windows 资源管理器中显示,为什么是build尺寸较大?
你可能会发现Build Report Tool中的大小不同的磁盘上文件的大小。这是正常的。这里是
一个很好的解释为什么: http://superuser.com/questions/66825/what-is-the-
difference-between-size-and-size-on-disk
Quote:
报价:
We know that a disk is made up of Tracks and Sectors. In Windows that means the
OS allocates space for files in "clusters" or "allocation units".
我们知道磁盘由Tracks和Sectors。在 Windows 中这意味着操作系统中的"clusters" or
"allocation units"的文件分配空间。
群集的大小各异,但典型的范围是从 512 字节到 32k 或更大。例如,在我 C:\ 驱动器上
,分配单元是 4096 字节为单位)。这意味着 Windows 将为任何文件或其中部分是从 1 到
4096 个字节长度的文件分配 4096 个字节。
...
另一个例子就是如果有了一个文件,大小为 2000 个字节。在磁盘上的文件大小将为 4096
字节。原因是,因为即使整个文件可以容纳一个分配单元,它仍然占据磁盘上的空间 (一
个分配单元) 4096 (只有一个文件可以使用分配单元和不能与其他文件共享)。
所以在磁盘上的大小是所有这些领域,在其中保存文件的空间。通常情况下,这意味着,在
磁盘上的大小总是大于实际大小。
End quote.
我只想说当你的game/app将通过互联网下载,需要转移的size是阅读你看到在Build Report
Tool,不是读您的磁盘上的大小的大小。
边注: 在Build Report window的大小读数有小数部分被围捕,由两位小数。
= = = 附加说明 = = =
别担心,生成报表工具本身使用的资产不会包含在您的生成。
为支持,您可以:
* 给我发一条 tweet 在 http://twitter.com/AnomalusUndrdog
* 给我一个私人信息在统一论坛 (http://forum.unity3d.com/members/8479-
AnomalusUndrdog)
* 寄给我一封电子邮件在 anomalous_underdog@yahoo.com
免积分下载地址:Build Report Tool
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。