iPhone および iPadのようなデバイス向けにゲームをビルドすることはデスクトップPC向けゲームとは異なるアプローチが必要です。PCマーケットと異なり,ターゲットのハードウェアは標準化されていて,また専用ビデオカードをもったコンピュータほど高速で協力ではありません。このためこれらプラットフォーム向けのゲーム開発のアプローチは少し異なって行う必要があります。さらにiOS向けのUnityの機能はデスクトップPCのそれとは若干異なります。
実際のデバイスでUnity iOSゲームを実行する前に,Appleデベロッパー アカウントが承認されてセットアップしておく必要があります。これはチームの決定,デバイスの追加,およびプロビジョニング プロファイルの最終化を含みます。これらすべてはAppleのデベロッパー ウェブサイトを通して実施します。これは複雑なプロセスなので,iOSデバイスでコードを実行する前に実施すべきタスクの 基本的な概要 をまとめました。しかし AppleのiPhoneデベロッパー ポータル の手順通りに進めることがベストです。
注意: この先に進める前に,Unity向けiOSの潜在的な力を全て引き出せるように,Appleデベロッパー アカウントをセットアップしておくことを推奨します。
Unity iOS ゲームをビルドするとき,XCode プロジェクトが生成されます。このプロジェクトは署名,コンパイルしたうえディストリビューション用にゲームを準備する必要があります。詳細については Unity XCodeプロジェクト を参照して下さい。
UnityはいくつかのスクリプティングAPIによりマルチタッチスクリーン,加速度計,GPS機能,およびその他多くの機能へのアクセスを提供します。スクリプトのクラスについては iOS スクリプティング ページ を参照下さい。
Unityにより,C,C++,またはObjective-Cで書かれたカスタムの関数を C# スクリプトからコール出来ます。ネイティブ関数をバインドする方法については, プラグイン ページ を参照下さい。
Unity iOS ランタイムにより,新しいコンテンツをダウンロードする機能があり,これを使ってアプリ内課金を実装できます。詳細については ダウンロード可能コンテンツ を参照下さい。
Unityは オクルージョン カリング をサポートしていて,多くのオブジェクトのある複雑なシーンでパフォーマンスを高めるのに便利です。詳細については オクルージョン カリング を参照下さい。
スプラッシュスクリーン カスタマイズ ページ により起動時にゲームが表示する画像を変更する方法を確認できます。
もしiOSデバイスでクラッシュを経験しているのであれば iOS トラブルシューティング ページで良くある問題や解決策について参照下さい。もしここで解決策を見つけられない場合,クラッシュに関するバグレポートを提出下さい。(メニューで: Unityエディタ上で を選択)。
iOS向けの場合,JavaScriptのDynamic TypeはつねにUnityでオフになっています(これはスクリプトに #pragma strict
を自動的に全てのスクリプトに付加しているのと同等です)。Static Typeはパフォーマンスを著しく改善し,iOSデバイスでは特に重要なことです。既存のiOSプロジェクトをiOSターゲット向けに切り替えるとき,Dynamic Typeを使用しているとコンパイルエラーが出ます。これを修正するのは簡単で,エラーが出ている変数を明示的に宣言するか,typeインタフェースを活用するかのどちらかの方法で解決できます。
パフォーマンス上の理由から,OSデバイスではMP3圧縮を使用すべきです。もしプロジェクトがOgg Vorbis 音声圧縮を利用する場合,それらはビルドの際にMP3に再圧縮されます。iPhoneでの圧縮音声についての詳細は オーディオ クリップ を参照下さい。
Unity iOSはDXTテクスチャをサポートしていません。その代わりにPVRTCテクスチャ圧縮がiPhone/iPadによりネイティブでサポートされています。iOSのテクスチャ形式についてはテクスチャ インポート設定 を参照下さい。
ムービーテクスチャはiOSでサポートされていません。その代わりに,フルスクリーンのストリーミング プレイバックがスクリプティング関数を通じて提供されています。サポートされているファイル形式およびスクリプティングAPIについてはマニュアルの ムービー ページ を参照下さい。