Version: 2017.3
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 デバイスで共有されます。
ゲーム画面の向き。このオプションは以下のとおり。 Portrait (ホームボタンが下側にある通常の状態)、 Portrait Upside Down (ホームボタンが上側にある逆さまの状態)、 Landscape Left (ホームボタンが右側にある状態)、 Landscape Right (ホームボタンが左側にある状態)、 Auto Rotation (デバイスの向きに応じて画面の向きを変更)
Use Animated Autorotation 画面の向きを変更するときに、単に切り替わるだけでなくアニメーションさせる場合はこのボックスをチェックします。このオプションは Default OrientationAuto Rotation に設定されている場合にのみ表示されます。
Allowed Orientations for Auto Rotation (このオプションは Default OrientationAuto Rotation に設定されている場合のみ表示されます。)
Portrait 縦長方向が可能。
Portrait Upside Down 縦長の逆向きが可能。
Landscape Right 横長方向の右向き (ホームボタンが 側にある状態) が可能。
Landscape Left 横長方向の左向き (ホームボタンが 側にある状態) が可能。
Multitaking Support
Requires Fullscreen ゲームをフルスクリーンで表示する必要がある場合はこのボックスをチェックします。
Status Bar
Status Bar Hidden このボックスをチェックすると、アプリケーションの起動時にステータスバーが非表示になります。
Status Bar Style アプリケーション起動時のステータスバーのスタイルを指定します。選択肢には DefaultBlack TranslucentBlack Opaque があります。
Disable Depth and Stencil これをチェックすると、深度バッファとステンシルバッファが無効になります。
Show Loading Indicator 起動のインジケーターをどのように表示するかを選択します。オプションには Don’t Show (非表示)、 White Large (大きいサイズの白)、 White (白)、 Gray (グレー) があります。

Icon

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

スプラッシュ画像

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

Launch Images

Launch Images は画面全体に表示される静的なスプラッシュスクリーン画像です。

iOS 7 を搭載するデバイスを使用する場合、起動画面のオプションで選べるのは Launch Images だけです。iOS 7 以前のバージョンはサポートされていません。iOS 8 以降を使用するデバイスに関しては、Launch ImagesLaunch Screens いずれかを使用できます。

Launch Images は Asset Catalog (Images.xcassets/LaunchImage) で定義されます。常に、それぞれのサイズと向きの組み合わせに適応した Launch Screen を追加します。

横向きは iPhone 6 以降でのみサポートされています。他の iPhone は縦向きにのみ設定できます。起動時の画像は以下の順番で選択されます。

  • テクスチャが設定されている場合は、特定の Launch Image によってオーバーライドされます。
  • デフォルトの Unity スプラッシュスクリーン起動画像

ビルドに対し、すべての Launch Images を設定する必要があります。

Launch Screens

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

Launch Screens には、iPad デバイスで、向きに依存する異なるコンテンツを表示できないという制限があります。したがって、Launch Screens は iPhone デバイス上でのみサポートされます。すべての iPhones は landscape (横向き) Launch Screens に適応します。ただし、iOS の不具合のために、ある iOS バージョンでは、Landscape Right の代わりに Landscape Left が表示されることがあります。

プロパティー 機能
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 の横向きのスプラッシュスクリーンとして使用するテクスチャを指定。標準のスプラッシュスクリーンサイズは1024x768。
iPad Portrait/Retina iPad Retina の縦向きのスプラッシュスクリーンとして使用するテクスチャを指定。標準のスプラッシュスクリーンサイズは1536x2048。
iPad Landscape/Retina iPad Retina の横向きのスプラッシュスクリーンとして使用するテクスチャを指定。標準のスプラッシュスクリーンサイズは2048×1536。
Launch Screen type Launch Screen タイプから以下のオプションが選べます。
- None まるで、起動画像のみを使用したような挙動になります。
- 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) ほぼ Image with background (relative size) オプションと同じですが、ユーザーが画像サイズをポイント数で指定する点が異なります。
- Custom Xib ユーザーが指定した XIB ファイルを使用します。

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 ゲームに使用するレンダリング パス を設定します。
Auto 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 作成されたビルドの数を把握するために、ビルド番号を入力することができます。
iOS Developer Team ID このプロパティーに Apple Developer Team ID を設定します。この ID は Account > Membership の Apple Developer web サイトで確認できます。このプロパティーは生成した Xcode プロジェクトの Team ID を設定し、開発者が Build and Run 機能を使用できるようにします。アプリケーションの自動署名を行うには、ここに Apple Developer Team ID を設定することが必須です。
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 このフィールドにユーザーの場所にアクセする理由を入力すると、そのときに理由が表示されます。
Mute Other Audio Sources これを有効にすると、Unity は、バックグラウンドで実行しているアプリケーションからのオーディオを停止します。バックグラウンドアプリケーションからのオーディオを Unity のアプリケーションと一緒に再生したい場合は、これを無効にします。
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 スキーム の一覧
Disable HW Statistics デフォルトでは Unity 製の iOS アプリは匿名ハードウェア統計を Unity に送っています。 これにより、開発者としての意思決定に役立つ集約的な情報を取得できます。これらの統計は http://stats.unity3d.com/ をご覧ください。これらの統計情報の送信を停止するには、このオプションを有効にします。
Architecture どのアーキテクチャを使用するか選択するオプションです。デフォルトで Universal が推奨されています。Arm64-only オプションを選択するのは、ハイエンド端末でのみ動作させるアプリケーションの場合にのみ適切です。Armv7 は整合性を求める場合向けです。
- Universal 推奨されるオプションです。両方のアーキテクチャをサポートしています。
- Armv7 型の古い Armv7 アーキテクチャのみをサポートします。
- Arm64 型の新しい Arm64 アーキテクチャのみサポートします。
Scripting Define Symbols カスタムコンパイルフラグ (詳細はプラットフォーム依存コンパイル を参照してください)。
Optimization
Api Compatibility Level アクティブな .NET API のプロファイルを指定します。以下を参照してください。
- .Net 2.0 .Net 2.0 ライブラリ。最大の .net 互換性を持ち、ファイルサイズは最大。
- .Net 2.0 Subset .Net 2.0 の部分的な .net 互換性を持ち、ファイルサイズは .Net 2.0 より小さい。
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 スクリプティングバックエンドでのみ有効です)
Script Call Optimization ランタイムの速度を上げるために例外処理をオプショナルで無効にします。詳しくは iOS 特有の最適化 を参照してください。
- Slow and Safe 例外処理はすべて行われます (Mono スクリプトバックエンドを使用している場合、デバイスのパフォーマンスに影響が出る場合もあります)
- Fast but no Exceptions デバイスで例外に関するデータが提供されません (Mono スクリプトバックエンドを使用する場合、ゲームは早くなります)
Vertex Compression どの頂点チャンネルを圧縮するかを選択します。圧縮はメモリと帯域幅を節約できますが、精度が低くなります。
Optimize Mesh Data メッシュ (接線、法線、色、UV) に適用されるマテリアルに必要のないすべてのデータをメッシュから取り除きます。

注意: 適切な SDK を選択してください。例えば、Device SDK を選択して、Xcode でシミュレーターをターゲットとすると、大量のエラーが発生しビルドに失敗します。

API Compatibility Level

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 オプションを選択すると使用できます。


  • 2017–31–08 編集レビュー を行って修正されたページ

  • Mute Other Audio Sources は 5.5で追加

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