Version: 2017.3
iOS
Unity の iOS サポート機能の基本

iOS 用ゲームの開発について

iPhone や iPad のようなデバイス向けにゲームをビルドするには、デスクトップ PC 向けゲームとは異なるアプローチが必要です。PC マーケットと異なり、iPhone や iPad のようなハードウェアは標準化されていて、専用ビデオカードをもつコンピューターほど高速で強力ではありません。このため、これらのプラットフォーム向けのゲーム開発のアプローチは少し異なります。さらに iOS 向けの Unity の機能はデスクトップ PC 向けの機能とは若干異なります。

Apple Developer アカウントの設定

デバイス向けにビルドするためには、 Apple Developer アカウントは必要ありません。テストの目的で自身のデバイスだけにビルドするには、どんな種類の Apple ID でも十分です。

ただし、実際のデバイスで Unity iOS ゲームを実行する前に、Apple Developer アカウントを設定することを推奨します。これは iOS で Unity の最大限の能力を発揮させるために必要だからです。これには、チームの作成や、デバイスの付加、プロビジョニングプロファイルの決定が含まれます。これらすべての設定は Apple Developer ウェブサイトを通して行います。これは複雑なプロセスなので、iOS デバイスでコードを実行する前に完了すべきタスクの 基本的な概要 をまとめました。Apple の iPhone デベロッパーポータル の手順ごとの説明とともに、参照してください。

Unity XCode プロジェクト

Unity iOS ゲームをビルドするとき、XCode プロジェクトが生成されます。このプロジェクトには署名、コンパイル、そして、ディストリビューション用にゲームを準備する必要があります。詳細については Unity XCode プロジェクトの構成 を参照してください。

iOS 機能へのアクセス

Unity はスクリプティング API を提供し、マルチタッチスクリーンや、加速度計、GPS 機能、その他多くの機能へのアクセスを提供します。スクリプトのクラスについては iOS のスクリプト を参照してください。

ネイティブ C、C++、Objective-C のコードをスクリプトからアクセス可能にする

Unity により、C 、C++、Objective-C で書かれたカスタムのネイティブな関数を C# スクリプトから呼び出せます。ネイティブ関数をバインドする方法については、プラグイン を参照してください。

アプリ内課金のためのアプリケーションを準備する

Unity iOS ランタイムを使うと、新しいコンテンツをダウンロードすることができ、これを使ってアプリ内課金を実装できます。詳細については ダウンロード可能なコンテンツ を参照してください。

スプラッシュスクリーンのカスタマイズ

起動時にゲームが表示する画像を変更する方法に関しては、iOS スプラッシュスクリーンのカスタマイズ を参照してください。

トラブルシューティングとクラッシュ時のレポート

もし iOS デバイスでクラッシュを経験しているのであれば iOS デバイスでのトラブルシューティング ページで良くある問題や解決策について参照してください。もしここで解決策を見つけられない場合、クラッシュに関するバグレポートを提出してください (Unity エディターで Help > Report A Bug を選択)。

Unity ターゲットで iOS とデスクトップの違い

Static Type された JavaScript

iOS 向けの場合、JavaScript の Dynamic Type はつねに Unity でオフになっています(これはスクリプトに #pragma strict を自動的にすべてのスクリプトに付加しているのと同等です)。Static Type はパフォーマンスを著しく改善し、iOS デバイスでは特に重要なことです。既存の iOS プロジェクトを iOS ターゲット向けに切り替えるとき、Dynamic Type を使用しているとコンパイルエラーが出ます。これを修正するのは簡単で、エラーが出ている変数を明示的に宣言するか、type インターフェースを活用するかのどちらかの方法で解決できます。

オーディオ圧縮

Unity は、さまざまなソース形式のサウンドファイルに対応しています。ただし、(トラッカーファイルを除いて)これらのファイルはインポートされる際に必ずビルドのターゲット形式にエンコードし直されます。この形式はデフォルトでは Vorbis になっていますが、プラットフォームごとに必要に応じて他の形式(ADPCM、MP3 など)にオーバーライド可能です。iPhone では、MP3 による再生のほうが Vorbis に比べて若干高パフォーマンスです。

DXT テクスチャ圧縮の代わりに PVRTC

Unity iOS は DXT テクスチャをサポートしていません。その代わりに PVRTC テクスチャ圧縮が iPhone/iPad によりネイティブでサポートされています。iOS のテクスチャ形式については テクスチャインポート設定 を参照してください。

動画の再生

ムービーテクスチャは iOS でサポートされていません。その代わりに、フルスクリーンのストリーミングプレイバックがスクリプティング関数を通じて提供されています。サポートされているファイル形式およびスクリプティング API についてはマニュアルの ムービーテクスチャ を参照してください。

iOS
Unity の iOS サポート機能の基本