このセクションで、iOS で作業するうえで、もっとも頻繁に聞かれる重要な質問についてカバーします。
回答 : SDK をダウンロードして、Apple デベロッパーサイトでの作業を開始して、チーム、デバイス、プロビジョニングをセットアップします。開始するために アカウントセットアップ をまとめてあります。
回答 : いいえ、しかし Unity iOS は最新の SDK を使用しているならば iPad シミュレータ向けにビルドはできます。しかしシミュレータそのものは、iOS からの入力のすべてをシミュレートできず、iPhone/iPad でのパフォーマンスを正しくエミュレートできないため、Unity でそれほど便利ではありません。Unity に入ってゲームプレイをテストするには、Unity Remote を使用して iPhone/iPad をリモコンとして使用すべきです。次に、パフォーマンスやゲームの最適化を行う準備が整ったら、iOS デバイスにパブリッシュします。
回答 : Unity iOS をインストールした際のスクリプティングリファレンスのの中で、アプリをビルドするうえで必要なデバイス機能をフックするクラスを見つけることができます。詳細については システム入力のページ を参照してください。
回答 : iOS のフィルレートは比較的遅いものです。もしパーティクルが画面の大きな割合を占めてマルチレイヤーつきであると、簡単なシェーダーでも iOS パフォーマンスに致命的です。推奨としては、パーティクルエフェクトをオフラインでテクスチャのセットに焼き込みをしてください。次に、ランタイムにおいて、1 - 2 パーティクルをしようしてアニメーションつきテクスチャで表示します。最小限のオーバードローにより比較的優れたエフェクトが得られます。
回答 : iOS では物理計算は、たくさんの浮動小数点に対する計算の高速処理が必要であるため、高価です。可能ならばメッシュコライダーは完全に避けて、どうしても絶対に必要という場合のみ使用します。パフォーマンスを改善するために、Edit->Time->Fixed Delta Time を使用して低い固定のフレームレートを使用します。フレームレートの設定は 10 - 30 を推奨します。Rigidbody 補間を使用してスムーズな動作と低い物理計算のフレームレートを両立します。安定した完全に滑らかなフレームレートを得るには、iOS 上で実際に得られている平均的なフレームレートにあった、固定の deltaTime
を選ぶことがベストです。1:1 かフレームレートの半分が推奨されます。例えば、30 fps が得られた場合、15 か 30 fps の固定フレームレートとなるようにすべきです( 0.033 か 0.066 )。
回答 : はい - 自身で実装すればできます。Unity iPhone はネイティブプラグインシステムをサポートし、必要な機能を追加できます – フォトアルバム、ミュージックライブラリ、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 要素はできる限り最小限に使用してください。