高度なゲーム開発
プロファイラーウィンドウ

プロファイラー ウィンドウ

Unity プロファイラー ウィンドウはゲームの最適化に役立ちます。ゲームのさまざまな要素で要した時間を報告してくれます。例えばゲームロジックのレンダリング、アニメーションに要した時間の割合が分かります。

プロファイリングを有効にするとエディターで実行することができて、パフォーマンスを記録することができます。次に Profiler ウィンドウがデータをタイムラインで表示するため、スパイクした (他より時間を要した) フレームや要素が分かります。タイムライン上の任意の位置をクリックすることで Profiler ウィンドウの下部に選択したフレームの詳細情報が表示されます。

プロファイリングがコードを “測定する” ことに注意してください。測定はゲームのパフォーマンスにわずかな影響があります。一般的にはこのオーバーヘッドはゲームのフレームレートに影響するほどの大きさするときではありません。プロファイリングを使用するとき、特定のエリアで要した時間の割合 (またはパーセンテージ) のみを考慮することが一般的です。さらにパフォーマンスを改善するためには時間をもっとも要する部分のみにフォーカスしてください。コード変更の前後のプロファイリングの結果を比較して改善結果を測定します。場合によっては行った変更がフレームレートにマイナスの影響を与える場合があり、コード最適化による想定外の結果があることを加味すべきです。

プロファイラーウィンドウの詳細は 次のページで記載されています。

さらに詳細について

iOS

リモートプロファイリングは次の手順により iOS デバイスで有効化できます:

  1. iOS デバイスを WiFi ネットワークに接続します(デバイスから Unity エディターにプロファイリングデータを送信するためにプロファイラーはローカル/アドホック WiFi ネットワークを使用します)
  2. Unity の Build Settings ダイアログで “Autoconnect Profiler” をチェックします。
  3. USB ケーブル経由で Mac にデバイスを接続したら、Unity の Build Settings ダイアログで “Development Build” をチェックし、“Build & Run” をクリックします。
  4. デバイスでアプリが起動した後、Unity エディターで Profiler ウィンドウを開きます。(Window->Profiler)

ファイアウォールを使用している場合、送信のルールでポート番号 54998 to 55511 が開放されていることを確認します - これらのポートは Unity によりリモートプロファイリングで使用されます。

注意: Unity エディターはデバイスに自動接続しない場合があります。そのような場合は、プロファイラーの接続は Profiler ウィンドウの Active Profiler ドロップダウンメニューで適切なデバイスを選択して開始できます。

Android

リモートプロファイリングは異なるパスにより Android デバイスで有効化できます: WiFi または ADB

WiFi プロファイリングでは、次のステップに従います:

  1. Android デバイスでモバイルデータ通信を無効化します。
  2. Android デバイスを WiFi ネットワークに接続します。
  3. USB ケーブル経由で Mac/PC にデバイスを接続したら、Unity の Build Settings ダイアログで “Development Build” と “Autoconnect Profiler” をチェックし、“Build & Run” をクリックします。
  4. デバイスでアプリが起動した後、Unity エディターで Profiler ウィンドウを開きます。(Window->Profiler)
  5. もし Unity エディターがデバイスに自動接続しない場合、Profiler ウィンドウの Active Profiler ドロップダウンメニューで適切なデバイスを選択します。 注意: Android デバイスおよび( Unity エディターを実行している)ホストコンピューターは両方とも同じ サブネット にないとデバイス検知が正しく動作しません。

ADB プロファイリングを行うには、次の手順に従います:

  • ケーブル経由で Mac/PC にデバイスを接続し、ADB がデバイスを認識することを確認します(すなわち adb devices のリストに表示されます)。
  • Unity の Build Settings ダイアログで “Development Build” をチェックし、“Build & Run” をクリックします。
  • デバイスでアプリが起動した後、Unity エディターで Profiler ウィンドウを開きます。(Window->Profiler)
  • Profiler ウィンドウの Active Profiler ドロップダウンメニューで AndroidProfiler(ADB@127.0.0.1:54999) を選択します。 注意: Unity エディターは “Build & Run” を押したときアプリケーションに対して自動的に adb トンネルを作成します。 もし、別のアプリケーションや adb サーバーを手動で再起動した場合は、ターミナル/コマンドウィンドウを開き、次のコマンドを入力します:
adb forward tcp:54999 localabstract:Unity-{insert bundle identifier here}

注意: ドロップダウンメニューのエントリーは選択されたターゲットが Android の場合のみ表示されます。

ファイアウォールを使用している場合、送信のルールでポート番号 54998 to 55511 が開放されていることを確認します - これらのポートは Unity によりリモートプロファイリングで使用されます。

WebGL

他のプラットフォームと同じように、WebGL上で Unity のプロファイラーを使用することができます。1つ重要な違いとして、WebGL として実行しているプレイヤーへアタッチすることはできません。これはブラウザ側が接続を許可しないため WebSocket を使用しているためです。代わりに、Build Settings の「Autoconnect profiler」にチェックを入れて使用する必要があります。WebGL では現在のドローコールをプロファイリングすることはできません。

高度なゲーム開発
プロファイラーウィンドウ