【Unity】モバイルゲーム開発で役立つProfilerの使い方とチェックポイント

当ブログではアフィリエイト広告を含みます
Unity

PCに端末を繋いでビルドを送信し、いざ実機でプレイしてみると
「めちゃくちゃ重い……なぜだ……😇」
というの、あるあるだと思います。

こういうときに見るべきは「Profiler(プロファイラ)」です。
Unityには標準で高性能なProfilerが搭載されており、処理のどこに無駄があるか・何が重いのかをリアルタイムで調査できます。

この記事では、モバイルゲーム向けにProfilerを使うときのポイントや、初心者が見逃しやすい罠についてわかりやすく解説します!

Profilerってなに?

↑これです。

Profilerは、ゲーム実行中のCPU・GPU・メモリ・レンダリング・オーディオなど、
さまざまな内部挙動をフレーム単位で解析できるツールです。

Unityエディタの上部メニューから
Window > Analysis > Profiler で開けます。

実行中のゲームの裏側で、

  • どの処理が何msかかってるか?
  • 描画回数が多すぎないか?
  • メモリが無駄に増えていないか?

といった情報を、グラフで確認できます。

接続方法:実機でも見れる!

エディタ内での解析はもちろん、スマホ実機と接続してProfilerを見ることも可能です。

  1. スマホでビルドしたアプリを起動
  2. UnityエディタでProfilerを開く
  3. 左上の「Active Profiler」で、対象の端末を選択!

これだけで、実機で動いている状態の詳細ログをPCで監視できます。
※USB接続または同一Wi-Fi上にある必要があります。

よく見るべきチェック項目

CPU Usage

CPU時間の使用状況が見れます。ゲームが重い原因の9割はここ。
特に PlayerLoop > Update.ScriptRunBehaviourUpdate の下にあるMonoBehaviour系のUpdate処理は要チェックです。

Updateの中で、foreach回して、さらにGetComponent連打とかしてませんか?

void Update()
{
    foreach (var enemy in GameObject.FindGameObjectsWithTag("Enemy"))
    {
        enemy.GetComponent<Rigidbody>().AddForce(Vector3.up); //←今すぐやめようか
    }
}

このような処理はProfilerでばっちりバレます。

Rendering

Draw Call数やバッチ数(SetPass Calls) を確認できます。
描画処理が重いときはここに現れます。

  • Draw Calls が1000超えていたらさすがにヤバい
  • Dynamic BatchingやGPU Instancingの効果も確認可能

UIが重たい場合、Canvasの再ビルドが原因のことも。

Memory

メモリリークやGC(ガベージコレクション)が疑われる場合にチェック。

  • GC Alloc のグラフが波打ってたら警戒
  • 1フレーム中に何度も new をしていたら、ヒープアロケート→GC の無限ループ
void Update()
{
    string s = "フレームごとに" + Time.frameCount + "回メモリ確保してるよ!"; //←今すぐやめようか
}

文字列の連結や List.Add()ToArray() も地味にアロケートを生むことがあります。

Timelineビューでフレーム分析

Profilerには Timeline というモードがあります。
ここでは、1フレーム内で各処理がどんな順番で・どれくらいの時間をかけて実行されているかを視覚的に見れます。

特定の処理が妙に時間を食ってるタイミングを発見しやすく、
「この敵が沸いた瞬間、重くなる」などのピンポイント解析に最適です。

Deep Profileは慎重に!

Profilerには Deep Profile(詳細解析)モードがあります。
すべての関数の内部処理まで見えるようになる一方、ものすごく重くなります。

  • 必要な範囲に限定して使う(シーンを簡略化する)
  • 実機での測定には向いてない

という点に注意しつつ使いましょう。


まとめ:Profilerは最強のデバッグパートナー

モバイル向けに最適化するには、目に見えない処理を“見える化”することが超重要。
Profilerはそのための公式チートアイテムです。

  • CPU Usage → 処理が重い箇所を特定
  • Rendering → 描画負荷を監視
  • Memory → GCやメモリリークの兆候を発見
  • Timeline → 実行順や遅延のタイミングを特定
  • Deep Profile → 処理の内部をフル解析(慎重に)

ぜひあなたの開発でもProfilerを活用し、
「動作が軽くてヌルヌル!ストアレビュー星5!」なゲームを目指してみてください!

タイトルとURLをコピーしました