iOS ハードウェアガイドガイド
iOS 2D テクスチャ オーバーライド

iOS Player Settings

このページは iOS 用 Player Settings の詳細説明です。Player Settings 全体の説明については プレイヤー設定を見てください。

Unity では iOS 7.0 以上が必要です。 iOS 6.0 以前のバージョンはサポートしていません。

Resolution And Presentation

プロパティー: 説明:
Orientation
Default Orientation (この設定は iOS と Android で共有されています)
Default Orientation ゲーム画面の向き。このオプションによって、Portrait(ホームボタンが下側にある通常の状態)、Portrait Upside Down(ホームボタンが上側にある逆さまの状態)、Landscape Left(ホームボタンが右側にある状態)、Landscape Right(ホームボタンが左側にある状態)、Auto Rotation (デバイスの向きに応じて画面の向きを変更) を指定することができます。
Use Animated Autorotation 画面の向きを変更するときに、単に切り替わるだけでなくアニメーションさせるか(このオプションは Default OrientationAuto Rotation に設定されている場合にのみ表示されます。)
Auto Rotation で回転可能な向き (このオプションは Default OrientationAuto Rotation に設定されている場合のみ表示されます。)
Portrait Portrait 方向を可能にします。
Portrait Upside Down Portrait upside down 方向を可能にします。
Landscape Right Landscape Right 方向(ホームボタンが 側にある状態) を可能にします。
Landscape Left Landscape left 方向(ホームボタンが 側にある状態) を可能にします。
Multitaking Support
Requires Fullscreen フルスクリーン必須にする場合は true にします。
ステータスバー
Status Bar Hidden アプリケーションの起動時にステータスバーが最初に隠されているかどうかを指定します。
Status Bar Style アプリケーションが起動した時のステータスバースタイルを指定します。オプションには Default (デフォルト)、 Black Translucent (半透明の黒) Black Opaque (不透明の黒)があります。
Disable Depth and Stencil これをチェックすると、デプスとステンシルバッファが無効になります。
Show Loading Indicator ローディングインジケーターをどのように表示するか。オプションには Don’t ShowWhite LargeWhiteGray があります。

アイコン

プロパティー: 説明:
Override for iPhone iPhone/iPad のゲームでカスタムアイコンを使いたいのであればチェックを付けてください。各サイズに対応するアイコンをそれぞれの四角スペースの中に入れてください。アイコンの割り当てを省いたものがあれば、近しいサイズのテクスチャ(解像度のもの大きいテクスチャが優先されます)が順次スケールを変えて割り当てられます。
Prerendered icon チェックを付けなければ、アプリのアイコンに標準的なスタイルエフェクトが適用されます。

スプラッシュ画像

iOS でスプラッシュイメージを実装する方法は2つあります。それは Launch ImageLaunch Screen です。

Launch Image 画面全体に表示される静的なスプラッシュイメージです。

iOS 7 のデバイスを使用する場合、起動画面のオプションで選べるのは Launch Image だけです(iOS 7 以前のサポートは行っておりません)。 iOS 8 以降のデバイスを使用する場合、Launch Image と Launch Screen のどちらかを選ぶことができます。

Launch Image はアセットカタログ(Images.xcassets/LaunchImage) を使用して定義できます。常に各サイズと向きに合わせたサポートされている Launch Screen を追加します。

横向きは iPhone 6+ でのみサポートされており、他の iPhone は縦向きにのみ設定できます。 起動画面は以下の順序で決定されます。

  • テクスチャが設定されている場合は該当する Launch Image を上書き
  • 上記が設定されていない場合、青みがかった黒色をしているデフォルトの Unity Launch Image を設定

すべての Launch Image を設定していることが望ましいです。

Launch Screen Launch Screen は iOS が動的にデバイス上でスプラッシュスクリーンを生成するために使用する XIB ファイルです。

Launch Screen には iPad の向きに依存したコンテンツを表示できないという制限があります。そのため Launch Screen は iPhone でのみサポートされています。

すべての iPhone は横向きの Launch Screen をサポートしていますが、iOS 側のバグの影響で特定のバージョンにおいて landscape left は landscape right として表示されます。

プロパティー: 説明:
Mobile Splash Screen iOS のスプラッシュ画面に使用されるべきテクスチャを指定。標準のスプラッシュ画面サイズは320×480になります。(このプロパティーは、iOS と Android の間で共有されます)
iPhone 3.5"/Retina iOS 3.5" Retina のスプラッシュ画面に使用されるべきテクスチャを指定。スプラッシュ画面サイズは 640x960。
iPhone 4"/Retina iOS 4" Retina のスプラッシュ画面として使用されるべきテクスチャを指定。スプラッシュ画面サイズは640x1136。
iPhone 4.7"/Retina iOS 4.7" Retina のスプラッシュ画面で使用するテクスチャを指定。スプラッシュ画面サイズは750x1334。
iPhone 5.5"/Retina iOS 5.5" Retina のスプラッシュ画面で使用するテクスチャを指定。スプラッシュ画面サイズは1242x2208。
iPhone 5.5" Landscape/Retina iOS 5.5" Retina の横向きスプラッシュ画面で使用するテクスチャを指定。スプラッシュ画面サイズは2208x1242。
iPad Portrait iPad の縦向きのスプラッシュ画面として使用されるべきテクスチャを指定。標準のスプラッシュ画面サイズは768x1024
iPad Landscape iPad Retina の横向きのスプラッシュ画面として使用されるべきテクスチャを指定。標準のスプラッシュ画面サイズは1024x768
iPad Portrait/Retina iPad Retina の縦向きの高解像度スプラッシュ画面として使用されるべきテクスチャを指定。標準のスプラッシュ画面サイズは1536x2048
iPad Landscape/Retina iPad 横向きの高解像度スプラッシュ画面として使用されるべきであるテクスチャを指定。標準のスプラッシュ画面サイズは2048×1536
Launch Screen type Launch Screen タイプから選べるオプションです
- None Launch Image のみ使用されているような挙動になります。
- Default Launch Screen は Launch Image にとても似た挙動になります。縦向き、横向き用に画像が選択され、その選択は iPhone 6+ の Launch Image、共用モバイル Launch Image、iPhone 6+ 用のデフォルト Unity Launch Image の順で行われます。画像はアスペクトフィルモードを使用して表示されます。
- Image with background, relative size 画像を中央に表示し、画像が表示されていない部分は単色で塗りつぶされます。画像サイズは画面サイズ基準でユーザーがパーセンテージを指定し、(横画面で縦向き画像の、縦画面で横向き画像の長辺を画面端に合わせたときを100パーセントとした)縮小寸法計算を行い決定されます。ユーザーは背景色や縦向き、横向き画面用の画像も指定することができます。画像選択は ユーザー指定画像、共用モバイル Launch Image、iPhone 6+ 用のデフォルト Unity Launch Image の順で行われます。画像はアスペクトフィルモードで表示されます。
- Image with background, constant size ほぼ reletive size オプションと同じですが、画像サイズをユーザーが絶対ポイント数で指定する点は異なります。
- Custom Xib ユーザーの XIB ファイルを使用します。

Unity Personal Edition では、選択されたスプラッシュ画面に加え、エンジンが開始されるとすぐにUnity のスプラッシュ画面が表示されます。 Unity Personal Edition では、選択されたスプラッシュ画面に加え、エンジンが開始されるとすぐにUnity のスプラッシュ画面が表示されます。

Debugging and Crash Reporting

プロパティー: 説明:
Enable Internal Profiler アプリケーションのパフォーマンスデータを収集し、コンソールにレポートを表示する内部プロファイラーを有効にします。レポートは毎フレーム動作する Unity のサブシステムを記録するためミリ秒単位で記されます。データは30フレームの平均になります。
On .Net UnhandledException .NET unhandled exception が起こったときに実行されるアクションです。オプションには Crash (アプリケーションを終了させた上で強制的に iOS にクラッシュレポートを生成させ、開発者が確認する代わりにアプリユーザーが iTunes にレポートを提出してもらうことが可能になります)、Silent Exit (アプリケーションは何事もなく終了します) があります。
Log ObjC uncaught exceptions 例外情報をコンソールに表示するカスタム Objective-C Uncaught Exception ハンドラを有効にします。
Enable Crash Report API クラッシュ情報を取得するためのカスタムクラッシュレポーターを有効にします。クラッシュログは CrashReport API 経由で利用可能です。

Other Settings

プロパティー: 説明:
Rendering
Rendering Path ゲームで有効になる レンダリングパス です。
Automatic Graphics API どのグラフィック API を使用するか選択するためのオプションです。チェックを付けた場合、Unity は Metal の使用を試み、デバイスが Metal に対応していない場合は GLES2 を使用します。チェックを付けていない場合、手動でグラフィック API の選択や使用優先度の変更ができます。手動でAPIを1つ選択するとアプリの info.plist の内容は変更され、App Store の規約に適切なものになります。
Static Batching チェックを付けることでビルドの静的バッチングが有効になります(デフォルトでは有効になっています)。
Dynamic Batching チェックを付けることでビルドの動的バッチングが有効になります(デフォルトでは有効になっています)。
GPU Skinning DX11/Es3 GPU スキニングを有効にするか
Identification
Bundle Identifier Apple Developer Network のアカウントからプロビジョニング証明書で使用される文字列(これは iOS と Android の間で共有されます)
Bundle Version バンドルのビルドバージョン番号を指定、ビルドバージョンが上がったことを示す(リリースされたかどうかにかかわらず)。バージョンはドットで区切られた数字を含む文字列(例: 4.3.2)でフォーマットされます。
Build 作成されたビルドの数を把握するために、ビルド番号を入力することができます。
Configuration
Scripting Backend Scripting backend を IL2CPP か Mono2x に設定するオプションです。デフォルトでは IL2CPP に設定されており、IL2CPP に深く関係したバグが発生したなど、特別な理由がない限りは Mono2x に設定しない方がよいです。Mono2x 設定で書き出されたビルドは App Store での掲載ができなくなったのです。
Target Device ゲームの対象デバイスをどれにするか。オプションには iPhone Only, iPad Only, iPhone + iPad があります。
Target SDK ゲームの対象SDKをどれにするか。オプションには iPhone OnlyDevice SDKSimulator SDK があります。
Target minimum iOS Version ゲームが機能するために最低限必要な iOS のバージョンを設定します。
Use on Demand Resource 有効にするとオンデマンドリソースの仕様ができるようになります。
Accelerometer Frequency 加速度メーターのサンプリング頻度設定。オプションには Disabled (サンプリングをまったくしません), 15Hz, 30Hz, 60Hz, 100Hz があります。
Location Usage Description このフィールドにユーザーの場所にアクセする理由を入力すると、そのときに理由が表示されます。
Override iPod Music オンの場合、アプリケーションはユーザーの iPod の音楽を消音します。オフの場合、ユーザーの iPod の音楽はバックグラウンドで再生され続けます
Prepare iOS for Recording このオプションを選択しておくと、マイク録音 API が初期化されます。これにより録音時の遅延が減りますが、iPhone では音声の出力先がイヤホンに限定されてしまいます。
Requires Persistent WiFi アプリケーションの Wi-Fi 接続を必須にするか。チェックを付けると iOS はアプリケーションが実行されている間、有効な Wi-Fi 接続を維持します。
Behaviour in Background ホームボタンが押された場合の実行内容を指定します。
- Suspend 標準的な動作です。アプリは中断されますが終了はしません。
- Exit アプリを中断するのではなく、終了させます。
- Custom バックグラウンドプロセスで独自のビヘイビアを実装できます。 例を参照してください。
Allow downloads over HTTP (nonsecure) このオプションを有効にしたときに HTTP 経由でコンテンツをダウンロードすることができます。デフォルトでは HTTPS を推奨しています。
Supported URL schemes [サポートされる URL スキーム]の一覧(https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1)
Disable HW Statistics デフォルトでは Unity 製の iOS アプリは匿名ハードウェア統計を Unity に送っています。そして、我々は開発者が判断するための一助となるよう総計情報を公開しています。これらの統計情報は http://stats.unity3d.com/ で閲覧可能です。このオプションを無効にすると、アプリに関するこれらの統計情報は送信されなくなります。
Architecture どのアーキテクチャを使用するか選択するオプションです。デフォルトで Universal が推奨となっています。ハイエンド端末でのみ動作させるアプリの場合は Arm64-only オプションを選択していいかもしれません。Armv7 は整合性を求める場合向けです。
- Universal 推奨するオプションです。両方のアーキテクチャをサポートしています。
- Armv7 型の古い Armv7 アーキテクチャのみをサポートします。
- Arm64 型の新しい Arm64 アーキテクチャのみサポートします。
Scripting Define Symbols カスタム編集フラグ(参照プラットフォーム依存コンパイルページ詳細について)。
オプティマイゼーション
Api Compatibility Level アクティブ.NET API のプロフィールを指定
- .Net 2.0 .Net 2.0ライブラリ。最大の.net互換性、大きいファイルサイズ
- .Net 2.0 Subset 全体の一部の.net互換性、小さいファイルサイズ
Prebake Collision Meshes 衝突データをビルド時にメッシュに追加するか
Preload Shaders プレーヤーの起動時にシェーダーを読み込むか
Preloaded Assets プレーヤーの起動時にアセットの配列を読み込むか
AOT compilation options 追加の AOT コンパイラ オプション
SDK Version Xcode でビルドする iPhone OS の SDK バージョンを指定
- Device SDK 実際のハードウェア上で実行するための SDK
- Simulator SDK シミュレータ上でのみ実行するための SDK
Target iOS Version アプリケーションを実行できる最低 iOS バージョンを指定します。低いバージョンを指定すると、多くの端末でアプリを実行できます。高いバージョンを指定すると、そのバージョンから導入された新しい要素をアプリに活かせるということですが、アップグレードした端末を持っていないユーザーはアプリを使用できません。‘Unknown’ オプションの場合、Xcode プロジェクト側でバージョン選択できます(新しい/ベータバージョンでエディターのリストにまだ載っていない iOS を対象とする場合)。
Strip Engine Code コードストリップを有効にします(この設定は IL2CPP scripting backend でのみ有効です)
Script Call Optimization 実行時に速度向上のために例外処理を無効にするオプション
- Slow and Safe 例外ハンドリングがすべて処理されます(Mono scripting backend を使用している場合、パフォーマンスに影響が出る場合もあります)
- Fast but no Exceptions デバイスで例外データが知らされません(Mono scripting backend を使用する場合、ゲームが早くなります)
Vertex Compression 頂点ちゃんねるを圧縮するかどうか。圧縮は、メモリと帯域幅を節約できますが精度が低くなります。
Optimize Mesh Data それら(接線、法線、カラー、UV)に適用されるマテリアルで必要としない、いくつかのデータをメッシュから取り除きます。

注意: SDK は正確に選択してください。Device SDK を選択したとして、Xcode でシミュレーターをターゲットとした場合、大量のエラーが起こりビルドに失敗します。

API Compatibility Level

Web Player を除くすべてのターゲットにおいて、Mono の API 互換性レベル (API Compatibility Level) を選択できます。時にはサードパーティ製の .NET DLL が使用したい .NET 互換性レベル外のものを使用する場合があります。そういうケースで何が起きているか理解して、最大限の修正対応を行うためには、Windows で “Reflector” を入手する必要があります。

  1. 該当する API 互換性レベルの .NET アセンブリファイルを Reflector にドラッグ&ドロップします。Frameworks/Mono/lib/mono/自身のサブセット名/ のフォルダー内でこれらは見つけることができます。
  2. サードパーティ製のアセンブリもドラッグ&ドロップします。
  3. サードパーティ製のアセンブリを右クリックして “Analyze” を選択します。
  4. 分析レポート(Analysis Report) の中で、“Depends on” セクションをチェックします。サードパーティ製品が依存しながらも、.NET 互換性レベルに含まれないものはすべてここで赤字でハイライトされます。

詳細

Bundle Identifier

Bundle Identifier の文字列は、ビルドしたゲームのプロビジョニングプロファイルと一致する必要があります。識別子の基本的な構成は com.CompanyName.GameName です。この構成は、あなたが居住している国によって異なりますので、必ずあなたの開発者アカウントでアップルから提供された文字列をデフォルトとしてください。GameName は、Apple の iPhone Developer Center の Web サイトから管理できるプロビジョニング証明書でセットアップされています。どう実行されるかの詳細については Apple iPhone Developer Center を参照ください。

Stripping Level

ほとんどのゲームでは必要なすべての DLL を使用しません。このオプションを使用すると、使用されない部分を削減して、iOS デバイス上のビルドしたプレーヤーのファイル容量を減らすことができます。もしこのオプションにより通常削減されるクラスがゲームで使用されている場合は、ビルド時にデバッグメッセージが表示されます。

スクリプト呼び出しの最適化

iOS で身に付けておくといい習慣は(内部的なもの、try/catch ブロックを用いたもの両方において)例外ハンドリングに頼らないことです。デフォルトの Slow and Safe オプションを使用する場合、デバイスで起こるすべての例外は捕捉され、スタックトレースが与えられます。Fast but no Exceptions オプションを使用すると、エラーが起こればゲームはクラッシュし、スタックトレースは与えられません。それに加え、プロジェクト固有のコードを例外情報にアクセスさせるために AppDomain.UnhandledException イベントが発生します。Mono scripting backend を使用するゲームだと、プロセッサーが例外ハンドリングに手を割かなくてもよくなるため速度が増します。IL2CPP scripting backend を使用する場合、Fast but no Exceptions オプションを使用することでパフォーマンスが向上することはありません。世界中に向けてゲームをリリースする際には Fast but no Exceptions オプションで書き出すのが一番いいでしょう。

インクリメンタルビルド

IL2CPP スクリプティングバックエンドで生成された C++ コードは、ソースファイルが変更された部分だけ C++ ビルドシステムがコンパイルして更新することができます。これは IL2CPP スクリプティングバックエンドで無駄なビルド時間を省くことができます。

インクリメンタルビルドは、“Build Settings”ダイアログから“Build”ボタンを選択した後、“Append”オプションを選択すると使用できます。

iOS ハードウェアガイドガイド
iOS 2D テクスチャ オーバーライド