2

我知道这可能是 Unity 特有的,但我在这里问它的原因是因为这更多是关于 iPad 和内存使用的一般问题......

我们有一个 Unity3D 游戏项目(不是我创建的,但我试图帮助找出它崩溃的原因)。它包含任何一次加载的大约 8 个纹理,大小均为 512x512。游戏中屏幕上的多边形可能不超过 10,000 个。

当我们在 iPad 2 上通过 Instruments 运行它时,它的峰值约为 60 MB,这似乎完全在该机器的内存容量范围内。然而,当我们尝试在 iPad 1 上运行它时,即使在重新启动以清除内存后,Instruments 显示它在崩溃之前达到了大约 40 MB 的加载量。

iPad 1 不能处理超过 40 MB 的内存有什么原因吗?我知道 iPad 1 只有 256 MB 与 iPad 2 的 512 MB 相比,但这肯定仍然在设备的能力范围内吗?

编辑:iPad 1 运行 iOS 4.2.1,iPad 2 运行 iOS 5.1。

4

2 回答 2

1

我们不知道 iPad 1 上安装的 iOS 版本,它可以改变操作系统使用的基本内存。

根据我的经验,在调用内存警告之前,40MB 的限制与我过去在只有 256MB RAM 的 Apple 设备上看到的 30-50MB 范围一致。

于 2012-04-27T12:25:59.413 回答
0

您无需放弃 iPad1 支持即可让您的应用正常运行。避免此问题的方法是解压缩纹理,然后将每个纹理写入文件。然后,内存映射每个文件并使用内存映射地址而不是正常的内存地址。iOS 设备可以通过这种方式从一个文件中映射大约 700 兆的数据,您可以通过普通的 opengl 方式将内存发送到显卡。

于 2013-07-19T17:56:25.933 回答