2012-04-27 7 views
2

これはかなりユニティ固有のことがわかりますが、これはiPadsとメモリ使用に関する一般的な質問のためです。メモリが40MBを超えると、iPad 1でUnityベースのアプリケーションがクラッシュする

私はUnity3Dゲームプロジェクトを持っています(私が作成したものではありませんが、なぜクラッシュするのかを理解しようとしています)。これは、一度にロードされる約8つのテクスチャを含み、すべて512x512サイズです。おそらくゲーム中の画面には約10,000個以上のポリゴンが存在します。

私たちがiPad 2でインストゥルメントを実行すると、そのマシンのメモリ機能のように見える約60 MBのピークに達します。しかし、私たちがiPad 1で実行しようとすると、メモリを再起動するために再起動しても、インストゥルメントはクラッシュする前に約40 MBの読み込みに達することを示しています。

iPad 1が40MB以上に対処できない理由はありますか?私はiPad 1がiPad 2の512 MBと比べて256 MBしか持っていないことを認識していますが、確かにこれはまだデバイスの能力の範囲内ですか?

編集:iPad 1はiOS 4.2.1を実行しており、iPad 2はiOS 5.1を実行しています。

答えて

1

iPad 1にインストールされているiOSのバージョンがわからないため、OSで使用されるベースメモリを変更することができます。

私の経験では、メモリの警告が呼び出される前に、私は40MBの制限が30-50MBの範囲に収まっています。私はAppleのデバイスでわずか256MBのRAMで見たことがあります。

+0

それは知っておくと便利です、ありがとう。 iPad 1はiOS 4.2.1を実行しています。私が驚いているのは、多くのフルオンのiOSゲームと比べると、私たちは驚くほど多くのことをしていないということです。テクスチャアトラスを使用することを考えましたが、それは多くの作業になります。試してみる価値はあると思いますか? – jowie

+0

私にとってあなたはiPad 1をサポートしないと考えることができます:iPad 2と新しいiPadに比べて、そのCPU/GPUは非常に悪いです! – MacTeo

+0

しかし、あなたはそれをすることはできません。特定のハードウェアを確認しない限り、制限することができないと聞きました。正面向きのカメラ...そして、実際に正面向きのカメラを使わない限り、Appleはおそらくそれを許さないでしょう。 – jowie

0

アプリを稼働させるためにiPad1のサポートを捨てる必要はありません。この問題を避ける方法は、テクスチャを解凍して、それぞれをファイルに書き込むことです。次に、各ファイルをメモリマップし、通常のメモリアドレスの代わりにメモリマップアドレスを使用します。 iOSデバイスは、この方法で約700メガのデータをファイルからマップすることができ、通常のOpenGLの方法でメモリをグラフィックスカードに送ることができます。

関連する問題