iOS開発を始める
アカウントセットアップ

Unity iOS の基本

このセクションで,iOSで作業するうえで,最も頻繁に聞かれる重要な質問についてカバーします。

必要な要件

AppleからiPhone Developerの承認は得られましたが,iOS開発は初めてです。最初は何から始めたら良いのでしょうか?

回答: SDKをダウンロードして,Appleデベロッパーサイトでの作業を開始して,チーム,デバイス,プロビジョニングをセットアップします。開始するために 基本的に必要なステップ をまとめてあります。

UnityでビルドしたゲームはiPhone シミュレータで実行できますか?

回答: いいえ,しかしUnity iOSは最新のSDKを使用しているならばiPadシミュレータ向けにビルドは出来ます。しかしシミュレータそのものは,iOS からの入力の全てをシミュレートできず, iPhone/iPadでのパフォーマンスを正しくエミュレートできないため,Unityでそれほど便利ではありません。Unityに入ってゲームプレイをテストするには, Unity Remoteを使用してiPhone/iPad をリモコンとして使用すべきです。次に,パフォーマンスやゲームの最適化を行う準備が整ったら,iOSデバイスにパブリッシュします。

Unity 機能

タッチスクリーンおよび加速度計で作業するにはどうしたら良いですか?

回答: Unity iOSをインストールした際のスクリプティング リファレンスのの中で,アプリをビルドするうえで必要なデバイス機能をフックするクラスを見つけることが出来ます。 詳細については システム入力のページ を参照下さい。

既存のパーティクルシステムが 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 iOSからフォトアルバム,ミュージック ライブラリ,またはネイティブ iPod プレイヤーにアクセスできますか?

回答: はい - 自身で実装すれば出来ます。 Unity iPhone はネイティブ プラグイン システムをサポートし,必要な機能を追加できます – フォトアルバム,ミュージック ライブラリ,iPod プレイヤー,または iOS SDK が公開しているその他の機能を含みます。ここまで列挙した機能をアクセスするにあたり,Unity iOS での Unity スクリプトを通じた APIはありません。

UnityGUI 考慮事項

UnityGUI によりどのようなパフォーマンス影響がゲームにありますか?

回答: UnityGUI は多くのコントロールが使用されているとき比較的高価です。理想的には UnityGUI の使用をゲームメニュー またはゲーム実行中においては極めて最小限の GUI コントロールに限定します。 OnGUI() コールを含むスクリプトのある全てのオブジェクトは,追加の処理時間を要することに留意して下さい – たとえ OnGUI() が空であったとしてもです。GUI コントロールが使用されていない OnGUI() コールのあるスクリプトは無効化するのがベストです。これはスクリプトで enabled = false とマーキングすることで対応できます。

Unity GUI を使用するテクニックはありますか?

回答: GUILayout は出来るかぎり最小限に使用して下さい。ひとつの OnGUI() コールで GUILayout を全く使用していない場合,全ての GUILayout を無効化するのに MonoBehaviour.useGUILayout = false; を使用できます。これにより GUI レンダリング パフォーマンスが倍増します。最後に,3D シーンにおける GUI 要素は出来る限り最小限に使用して下さい。

iOS開発を始める
アカウントセットアップ