保持建立的程序文件大小,最小的往往是重要的,尤其是对于移动设备的应用程序商店,或处以大小限制。在减少尺寸的第一步是确定资产的贡献最大,因为这些资产优化的最有可能的候选人。你可以找到这个信息从编辑日志只是当你完成构建(选择打开编辑日志从控制台窗口的右上方的小面板菜单)。
刚建立的编辑日志日志提供的资产按类型进行了总结并列出所有个人资产规模的贡献为。通常,这样的纹理,音乐和视频会占用大部分存储在脚本、水平和着色器通常可以忽略不计。请注意,文件头在总结中提到的不在自己的资产。标题实际上是额外的数据被添加到“生”的资产文件来存储引用和设置。标题通常差异非常小的资产规模但如果值可以大如果你的资源文件夹中有大量的资产。 日志可以帮助你确定你想要删除或优化,但你应该开始工作前考虑以下资产: 重新规范统一进口资产注入自己的内部格式,所以源资产类型的选择是不相关的。例如,如果你在项目中的多层PS图象处理软件纹理将被压缩在建筑。出口的纹理作为一个PNG文件大小不会建立任何区别,所以你要坚持,在开发过程中对你最方便的格式。 统一条大部分闲置资产在建立,所以你没有获得任何从项目手动删除资产。不删除唯一的资产是脚本(通常是非常小的反正)和资产在资源文件夹(因为单位不能确定这些将需要和不)。因此,你应该确保在资源文件夹中的资产只有你真的需要为游戏的人。你可能会取代资产资源资源包负载资产动态从而减少玩家的大小。
为减少建设规模的建议纹理通常纹理占用了大部分空间的构建。首先要做的是使用压缩纹理格式(DXT(桌面平台你可以pvrtc)or)。 如果没有得到减少的大小,尽量减少纹理的大小。这里的诀窍是,你不需要修改实际的源内容。只是在项目视图中选择纹理设置最大尺寸在导入设置。这是一个好主意,放大一个使用纹理的对象上,然后调整最大尺寸直到它开始在寻找更糟场景视图。
改变最大纹理尺寸不会影响你的纹理资源,只是在游戏的分辨率下表显示的图像格式占用的字节存储每个像素的多少: 压缩 内存消耗(字节/像素) Standalone & WebGL crunched DXT1 RGB 变量 dxt5 RGBA crunched 变量 RGB DXT1压缩 0.5 BPP RGBA Compressed DXT5 1 BPP RGB 16bit 2 BPP RGB 24bit 3 BPP 阿尔法8bit 1 BPP RGBA 16bit 2 BPP RGBA 32 4 BPP iOS 2位RGB压缩PVRTC 0.25 BPP(位/像素)。 RGBA压缩PVRTC 2位 0.25 BPP 4位RGB压缩PVRTC 0.5 BPP RGBA压缩PVRTC 4位 0.5 BPP RGB 16bit 2 BPP RGB 24bit 3 BPP 阿尔法8bit 1 BPP RGBA 16bit 2 BPP RGBA 32 4 BPP 安卓 RGB DXT1压缩 0.5 BPP(位/像素)。 RGBA Compressed DXT5 1 BPP RGB压缩等 0.5 BPP 2位RGB压缩PVRTC 0.25 BPP(位/像素)。 RGBA压缩PVRTC 2位 0.25 BPP 4位RGB压缩PVRTC 0.5 BPP RGBA压缩PVRTC 4位 0.5 BPP RGB 16bit 2 BPP RGB 24bit 3 BPP 阿尔法8bit 1 BPP RGBA 16bit 2 BPP RGBA 32 4 BPP 的总图像存储大小的公式是宽×高×BPP。如果你正在使用mipmap然后存储将约三分之一大于单一的图像。 默认情况下,统一压缩所有纹理导入时。更快的工作流编辑器中,你可以把压缩从偏好但所有纹理将被压缩在建立此设置如何。 网格和动画网格与进口动画剪辑可以压缩,所以他们在你的游戏文件占用空间少。压缩可以打开网格导入设置。 网格和动画压缩使用量化,这意味着它需要更少的空间,但压缩可以介绍一些错误。什么级别的压缩试验是可以接受你的模型。 注意网格压缩只会产生较小的数据文件,在运行时不使用更少的内存。动画关键帧减少产生较小的数据文件和在运行时使用较少的内存,通常你应该总是启用。 动态连接库默认情况下,统一只包括以下DLL在内置的播放器: - mscorlib.dll
- boo.lang.dll
- unityscript.lang.dll
- unityengine.dll
建立一个球员的时候,你应该避免任何依赖System.dll或system.xml.dll。统一不包括这些内置播放器默认情况下如果你使用他们的类,那么他们将获得包括。这些DLL将增加约1兆字节到播放器的存储大小。如果你需要解析XML在你的游戏中,你可以使用一个像图书馆一样mono.xml.zip as a smaller alternative to the system libraries. While most Generic containers are contained in mscorlib, Stack<> and few others are in System.dll, so you should avoid these if possible.
你可以看到,统一是包括system.xml.dll和System.dll,当创建一个播放器降低移动网库的大小。Unity支持两.NET API的兼容级别的一些移动设备:.NET 2和一个子网的2。你可以选择你建立在适当的水平播放器设置。 在.NET 2 API的轮廓是类似于全网2的API。大多数的库例程的全面实施,此选项与预先存在的兼容性最好的.net代码。然而,对于许多游戏,完整的图书馆是不需要的,多余的代码占用了宝贵的内存空间。 为了避免浪费内存,统一也支持.NET 2 API子集的轮廓。这是单”的“轮廓非常相似,的“的”的资料,也适用于统一的限制太多。2集简介。(在“的”的资料,可以发现限制的更多信息在这里)。很多库例程,不是游戏通常需要离开这个轮廓以节省内存。然而,这也意味着,这些例程代码依赖关系将无法正常工作。这个选项可以是一个有用的优化,但你应该检查现有的代码仍然工作在应用。
|