目录
正常默认打包流程(以Android平台为例)
查看编辑器打包日志
压缩图片
压缩网格模型
压缩贴图
压缩音频文件
只打64位包
最终大小
正常默认打包流程(以Android平台为例)
-
准备工作:
- 确保已安装最新版Unity Hub和Unity编辑器(建议2021 LTS或更新版本)
- 安装Android Build Support模块
- 配置JDK、Android SDK和NDK路径
-
基础打包步骤: a) 打开Unity项目 b) 点击菜单栏 File > Build Settings c) 在Platform列表中选择Android d) 保持默认设置不变:
- Texture Compression: ASTC
- Build App Bundle (Google Play) 不勾选
- Development Build 不勾选
- Autoconnect Profiler 不勾选
- Script Debugging 不勾选 e) 点击Build按钮,选择保存路径(如桌面/temp.apk)
-
包体分析:
- 默认打包完成后,APK文件通常会有以下结构:
- base.apk(主程序包)
- lib/armeabi-v7a(32位so库)
- lib/arm64-v8a(64位so库)
- assets(资源文件)
- res(UI资源)
- META-INF(签名信息)
- 默认打包完成后,APK文件通常会有以下结构:
-
典型包体大小参考:
- 空项目(仅含Unity默认场景):15-20MB
- 包含标准资源(如UGUI):25-35MB
- 包含IL2CPP编译的脚本:额外增加3-5MB
-
查看包大小的正确方法:
- 使用Analyze APK工具(Android Studio自带)
- 或通过命令:
aapt dump badging your_app.apk | grep "package: name="
注意:首次打包可能会较慢,因为需要生成Gradle项目并下载依赖库。建议在测试前先清空Library/Temp文件夹。
查看编辑器打包日志
搜索build report构建报告。构建报告我们应该看到构建中使用的所有资产根据其大小排序
压缩图片
让我们从压缩项目中的图像资源开始,这些资源通常是最消耗空间的资源。在大多数项目中,图像文件(如JPG、PNG、GIF等)往往占据了最大的存储空间。例如,在一个典型的网页项目中,可能包含多张高分辨率的背景图、产品展示图或用户头像等,这些文件的大小很容易就达到几百KB甚至几MB。
要压缩这些图像资源,首先需要识别出项目中体积较大的图像文件。具体操作步骤如下:
- 在项目资源管理器中,浏览图像文件所在的目录(通常是"images"、"assets"或"resources"文件夹)
- 查看文件大小,可以按文件大小排序(在Windows资源管理器中右键点击列标题选择"大小")
- 复制要压缩的图像的名称,比如这个"product-banner.jpg"(容量3.5MB)或"user-profile.png"(容量1.2MB)
常见的需要压缩的图像资源包括:
- 网站横幅和背景图
- 产品展示图片
- 社交媒体分享图片
- 用户上传的头像
- 应用界面截图
在识别出大容量图像后,我们可以使用各种图像压缩工具来优化这些文件,如TinyPNG、ImageOptim或Photoshop的"存储为Web所用格式"功能。压缩后的图像通常能减少50%-80%的文件大小,而几乎不会影响视觉质量。
比如这个:
复制名称,搜索资产
要在此处启用压缩选项,我们可以为压缩做两件事
我们可以降低图像的分辨率,如果你觉得图像的分辨率太大,请选择较低的分辨率
可以尝试对图像应用压缩算法,不同平台的处理方式各有差异。建议多测试几种选项来找到最佳方案。
在Android平台上,个人更倾向于使用crunch压缩或astc压缩方式。
压缩后的应用配置会大幅减小图片尺寸。保存后请务必重新运行游戏,检查图片是否因过度压缩而模糊,如有问题可返回重新调整。
包体减少了一些。当然我这里图片素材比较少,尺寸也不大,可能你的项目比较大的话,可能效果就比较明显
压缩网格模型
如果你是3d游戏,还会有很多的网格模型
通用搜索找到网格模型
从下拉菜单中选择高、中或低压缩级别。注意压缩率越高,模型会变得越粗糙。请根据网格需求选择合适的压缩级别。
压缩贴图
为确保立方体贴图清晰不模糊,建议采用以下分辨率:
- 移动平台或主机:256 或 512
- PC 平台:1024 或 2048 为最佳选择
压缩音频文件
现在降低音频质量滑块,然后单击应用大多数音频没有最多50次压缩的任何明显变化,但请确保在压缩后测试这些音频
只打64位包
还可以只打64位包,能减少很多,32位设备已经非常非常少了,完全不必担心兼容性。