Unity for iOS在后台占用大量内存

时间:2017-02-20 16:56:07

标签: ios unity3d background-process

我正在编写Unity iOS应用程序,它在后台跟踪用户位置。当应用程序在前台工作时,它需要50-60MB的内存,当它进入后台时,所有数据仍然保留在内存中。在这种情况下,应用程序会在几秒钟内因内存问题而终止。 Resources.UnloadUnusedAssets();不会减少任何事情。

如何减少后台占用的内存?

1 个答案:

答案 0 :(得分:1)

这是理想的行为。当应用程序进入BG时,iOS并没有开始释放内存,这是应用程序的责任。

解决内存问题的最佳方法是对应用程序进行性能分析并查看内存的位置。在大多数情况下,纹理会占用大量内存,因此您可以考虑减小其大小或使用压缩。你可以做的另一件事就是关闭纹理的mipmapping,但是如果你在2D UI中使用纹理,这只能提供良好的视觉效果,因为3D不是一个好主意。

Resources.UnloadUnusedAssets()只有在有未使用的资产时才会有效,如果您没有做任何有关这方面的改变,那将会产生任何影响。

你可以尝试的一个小小的黑客是创建一个空场景并在后台进行转换。场景可以有一个2D纹理,显示应用程序处于后台模式。然后你可以调用Resources.UnloadUnusedAssets(),然后当回到前台时转换回主场景。