Unity 打包体积优化
最近看了些关于Unity体积优化的方案的文章以及Unity官方文档,总结了一下
资源优化
- 压缩图片大小,对于精度要求不高的贴图,降低其尺寸,根据平台需要选择合适的压缩算法。
- 关闭图片minimap和A通道。
- Sprite Atlas 图集(原Sprite Packer),把多个图打包为一个图
- 网格优化:Mesh Compression 设置为 Low、Medium 或 High
- 使用Prefab代替场景
- 使用Addressable把资源拆包到CDN下载
代码优化
- 在 Mono 上将 iOS Stripping Level 设置为 Use micro mscorlib__,或在 IL2CPP 上启用 Strip Engine Code
- IL2CPP开启托管代码剥离
- 不要使用System.dll的方法(此方法需要重构代码,把所有使用的地方替换掉)
- 删除不必要的代码依赖项
- API Compatibility Level 选择 .NET Standard 2.0
打包优化
通用
- 关闭静态资源合批
- 打包版本选择Release
- Build Settings Compression Method Release时选择LZ4HC
Android
- 如果没有必要,减少Android支持的架构(每增加一个架构,就会多出一套符号表,解压出来50+MB)
- Publish Settings 启动Minify
产物优化
iOS 优化
- 关闭bitcode
参考文章
- https://www.cnblogs.com/wxjblog/p/14038849.html
- https://blog.csdn.net/dengshunhao/article/details/84834596
- 优化构建的 iOS 播放器的大小: https://docs.unity3d.com/cn/2020.3/Manual/iphone-playerSizeOptimization.html
- iOS Player Settings: https://docs.unity3d.com/cn/2020.3/Manual/class-PlayerSettingsiOS.html#scriptCallOpt
- iOS Build Settings: https://docs.unity3d.com/cn/2020.3/Manual/BuildSettingsiOS.html
- Android Player Settings: https://docs.unity3d.com/cn/2020.3/Manual/class-PlayerSettingsAndroid.html