目录

1.项目设置

1.1 共享材质着色器代码&共享材质本地库

1.2 压缩已烘焙内容(※)

1.3 排除编辑器内容

1.4 设置项目的关卡

1.5 打包为发布版而非开发版

2.调整贴图Lod级别

3.移除未引用的资源

4.移除未使用的插件


在尽量避免导入与项目无关的资源的情况下,我的Minigame包体大小也达到了800M之大,通过优化处理将大小压缩到了160M,现将所采取的措施总结如下。

1.项目设置

1.1 共享材质着色器代码&共享材质本地库

勾选“Project Settings -> packaging -> Share Materail Shader Code & Shared Materail Native Libraries”。

ue4打包android ue4打包文件太大_包体过大

1.2 压缩已烘焙内容(※)

勾选“Project Settings -> packaging -> Create compressed cooked packages”。

压缩已烘培内容往往是最简单也是最有效的方式,可以减少50%以上的包体大小。

1.3 排除编辑器内容

勾选“Project Settings -> packaging -> Exclude editor content when cooking”。

启用此选项后,UE4编辑器使用的内容都不会打包进项目中。

注意:启用此选项后可能导致使用编辑器内容的项目出现内容缺失。

1.4 设置项目的关卡

经常被忽略的是,未正确设置项目的关卡会导致项目APK包容量激增。

ue4打包android ue4打包文件太大_ue4打包android_02

1.5 打包为发布版而非开发版

开发版会携带部分开发内容,若打包为发布版往往能减少14%左右的包体大小。

ue4打包android ue4打包文件太大_包体优化_03

2.调整贴图Lod级别

往往有些贴图并不是那么重要,出现的地方很少或者可能性极小,却占用了较大的内存,就可以修改贴图属性中的LOD Bias,有效降低贴图的分辨率,压缩贴图大小。


ue4打包android ue4打包文件太大_包体过大_04

LOD为0

ue4打包android ue4打包文件太大_包体过大_05

LOD为2

3.移除未引用的资源

通常我会在制作过程中,建立一个临时工程测试资源包中的内容,然后把采用的内容通过迁移的方式放入项目里。

这样可以有效的避免导入不会用到的资源,但也难免会替换或弃用一些早期制作遗留的内容,因而可以通过引用查看器去确认哪些资源是不会被用到的,移除掉这些资源。虽然Unity有清除未引用资源的小插件,但有时也会导致误判删除一些会用到的资源。

因而一个良好的资源管理习惯是必不可少的,包括新建项目时最好选择创建一个空项目

4.移除未使用的插件

通过打开“Edit-Plugins”会发现,虚幻默认开启了很多常用插件,它的初衷是好的,这样可以让大多数人不用每次新建项目后,去寻找项目所需的相关插件。

然而你的项目并不会真正用到所有这些模块,但只要你开启某项插件,就需要将该插件相关的资源和代码打到你的包里。因而,

禁用未使用的插件很有必要。

注:禁用时务必小心,遇到不清楚具体功能的插件建议保留,以免造成项目崩溃。

ue4打包android ue4打包文件太大_包体压缩_06