ここでは、iOS で作業する上で、もっとも頻繁に聞かれる重要な質問についてカバーします。
回答: SDK をダウンロードして、Apple Developer サイトを開き、チーム、デバイス、プロビジョニングを設定します。開始するため iOS アカウント設定 で基本的な手順を紹介しています。
回答: 可能ですが、特定の状況でのみです。 シミュレーターで Metal サポートを有効にするには、XCode11 と macOS10.15 を使用する必要があります。ただし、シミュレーター自体は、iOS からのすべての入力をシミュレートしたり、iPhone/iPad で得られるパフォーマンスを適切にエミュレーションしたりしないため、Unity にはあまり役に立ちません。 Unity Remote アプリケーションを実行して iPhone/iPad をリモコンとして使用し、Unity 内で直接ゲームプレイをテストするとよいでしょう。それから、パフォーマンスをテストしてゲームを最適化する準備が整ったら、iOS デバイスにパブリッシュしてください。
回答: Unity の iOS サポート機能のインストールに含まれるスクリプトリファレンスには、アプリケーションを構築するために必要な、デバイス機能へのフックを提供するクラスがあります。詳しくは [入力]](Input.html) を参照してください。
回答: iOS のフィルレートは比較的低いと言えます。パーティクルが画面の大部分を複数のレイヤーで覆うと、最も単純なシェーダーでも iOS のパフォーマンスが低下します。そのため、パーティクルのエフェクトを一連のテクスチャにオフラインでベイクすることをお勧めします。そして、ランタイムにアニメーションテクスチャを通して、1〜2 個のパーティクルシステムを表示します。このようにすれば、最小限のオーバードローで適当な結果を得ることができます。
回答: 物理計算は、浮動小数点数の計算を多く必要とするため、iOS では負荷が高くなります。可能であれば MeshCollider を完全に回避すべきですが、本当に必要な場合は使用できます。パフォーマンスを向上させるには、 Edit > Time > Fixed Delta Time で低い固定フレームレートを使用します。10〜30 のフレームレートが推奨されます。低い物理フレームレートを使用ながら、リジッドボディ補間を有効にして滑らかな動きを実現します。振動なしで完全に流動的なフレームレートを実現するには、iOS で得られるゲームの平均フレームレートに基づいた固定の deltaTime
値を選ぶのが最善です。1:1 またはフレームレートの半分が推奨されます。例えば、30 fps である場合は、固定フレームレート (0.033 または 0.066) に対し 15 または 30 fps を使用するとよいでしょう。
回答: はい、Unity の iOS サポート機能を実装すればアクセスできます。Unity の iOS 向け機能は、ネイティブのプラグインシステムをサポートします。そこでは必要などんな機能でも追加できます。ギャラリー、ミュージックライブラリ、iPod プレイヤー、iOS SDK がアクセス可能にしている他のどんな機能へのアクセスも含まれます。Unity の iOS サポート機能には、Unity スクリプトを通してリストされた機能にアクセスするための API はありません。
回答: UnityGUI は、より多くのコントロールが使用されるとより多くのリソースを消費します。ゲームの実行中は、UnityGUI の使用をゲームメニューまたは最小限の GUI コントロールに限定するのが理想的です。OnGUI()
呼び出しを含むスクリプトを持つすべてのオブジェクトは、たとえそれが空の OnGUI()
ブロックであっても、プロセッサーの時間が追加で必要になることに注意することが重要です。GUI コントロールが使用されていない場合は、OnGUI()
呼び出しを持つスクリプトをすべて無効にするのが最善です。スクリプトを enabled = false
とすることでこれを行うことができます。
回答 : GUILayout はできるかぎり最小限に使用してください。ひとつの OnGUI()
コールで GUILayout をまったく使用していない場合、すべての GUILayout を無効化するのに MonoBehaviour.useGUILayout = false;
を使用できます。これにより GUI レンダリングパフォーマンスが倍増します。最後に、3D シーンにおける GUI 要素はできる限り最小限に使用してください。