为什么在下载和解包后将AssetBundle加载到内存由于内存不足导致iPad崩溃?

时间:2018-04-26 09:45:55

标签: unity3d didreceivememorywarning assetbundle on-demand-resources

我们刚刚在Unity 2D中完成了2D游戏,但很难解决与内存相关的一些严重问题。

使用的Unity版本:Unity 2017.2.2f1

我们正在使用AssetBundles和On Demand Resource下载平均大小为20MB的捆绑包(纹理,精灵表,bg图像和场景)。

我们已经成功地将我们的应用商店大小限制为90MB。在Xcode中对项目进行概要分析时,构建占用的初始内存为180 MB。但是当我们通过On Demand下载任何级别(资产包)时问题就开始了资源。内存使用量从180MB跳到568MB。

1.下载并加载大小为20MB的AssetBundle后,为什么团结消耗388MB内存?

2.为什么每次加载一个新场景时,unity都会在卸载场景后保留一些内存,即不清除已分配的块?

3.在Unity设备中使用RGBA压缩PVRTC 4位吗?

5.是否有任何第三方SDK来压缩Unity的2D纹理和GUI图形?

请帮助我,以便我可以将项目交付给客户其他方面,我的工作有风险:(

先谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 检查资产包压缩以及如何加载资产包。 压缩资产包在内存中完全解压缩,因此建议对包使用Uncompressed或Chunck Based压缩以避免内存峰值。
  2. Unity使用托管内存加载和卸载会导致一些内存泄漏,因为GC几乎控制了所有内容。
  3. PVRTC适用于所有IOS设备。
  4. 由于您的目标是iOS PVRTexTool,因此您需要PVRTexTool Download