8.

Unity ゲーム実行/一時停止/コマ送り|Play / Pause / Step とショートカット

編集
この記事の要点
  • Unity Editor のゲーム実行 / 一時停止 / コマ送り操作
  • Play ボタン (Ctrl+P): Editor 上でゲームを実行
  • Pause ボタン (Ctrl+Shift+P): 一時停止。Inspector で状態確認や値編集が可能
  • Step ボタン (Ctrl+Alt+P): 1 フレームずつ進行(物理挙動・1f だけの不具合のデバッグに必須)
  • Play 中の変更は停止すると消える — 永続化したい変更は事前に

Play / Pause / Step ボタン

Unity Editor のツールバー中央には 3 つのボタンが並んでいます:

ボタン機能Windows ショートカットMac ショートカット
▶ Playゲームを実行(Game ビューに切替)Ctrl + PCmd + P
⏸ Pause実行中に一時停止 / 再開Ctrl + Shift + PCmd + Shift + P
⏭ Step1 フレームだけ進めるCtrl + Alt + PCmd + Option + P

Play モードの特徴

  • Editor のタブカラーが青色(デフォルト)に変化して、Play 中であることを示す
  • Hierarchy / Inspector で値を編集できる — リアルタイム挙動確認に最適
  • Play 中の変更は停止すると元に戻る — 設定値を永続化したいなら停止後に再度同じ値を入れる
  • Play 中に Scene を切り替えても OK(SceneManager.LoadScene で遷移確認)

Pause モードの活用

一時停止中はゲームロジックや物理演算が止まる一方で、Editor 操作は可能。デバッグに非常に便利:

  • Inspector で変数の値を確認(実行時の状態を可視化)
  • Scene ビューでオブジェクトの位置・向きを確認
  • Hierarchy で動的生成されたオブジェクトを確認
  • Console でDebug.Log の出力を確認

Step モード(コマ送り)の使い所

1 フレームずつ進めるので、以下のシーンで重宝します:

  • 当たり判定の検証: 衝突した瞬間のフレームを観察
  • 物理挙動の確認: Rigidbody が想定通り動いているか
  • アニメーションの特定フレームでの状態確認
  • 1 フレームだけの不具合(チラつき・テクスチャ表示遅延など)の再現

「Play On Awake」の挙動

Audio Source / Animator など一部コンポーネントには「Play On Awake」プロパティがあり、シーン読み込み直後に自動再生されます。Play ボタンを押した瞬間に音が鳴ったりアニメーションが動いたりするのはこの設定です。

Play モード時の自動切替

Edit → Preferences → General で以下が設定可能:

  • Auto Save Scenes Before Building: Play 前に自動保存
  • Enter Play Mode Options: Reload Domain / Reload Scene のスキップ(高速 Play へ)
  • Play Mode Tint: Play 中の Editor 色を変更(青以外も可)

Enter Play Mode Options(高速 Play)

大規模プロジェクトでは Play ボタンを押してから実行開始まで数秒かかります。これを大幅短縮:

  1. Edit → Project Settings → Editor
  2. Enter Play Mode Options にチェック
  3. Reload Domain: スクリプトの再ロードをスキップ(static 変数がリセットされなくなる点に注意)
  4. Reload Scene: シーンの再ロードをスキップ

static フィールドを使っているコードは Reload Domain OFF だと前回値が残るので、コードを RuntimeInitializeOnLoadMethod で初期化する必要があります。

スクリプトから Pause を制御

using UnityEditor;
using UnityEngine;

public class PauseHelper : MonoBehaviour {
    void Update() {
        if (Input.GetKeyDown(KeyCode.P)) {
            // Editor 上でのみ動作(ビルド版では EditorApplication 使えない)
            #if UNITY_EDITOR
            EditorApplication.isPaused = !EditorApplication.isPaused;
            #endif
        }
    }
}

// ゲーム時間の停止(リリース版でも使える)
// Time.timeScale = 0f; → 全ての Update / FixedUpdate が停止扱い
// Time.timeScale = 1f; → 通常速度に戻す

Time.timeScale との違い

Editor の PauseTime.timeScale = 0
対象Editor のみEditor / ビルド版両方
停止範囲すべて(Update / 物理 / アニメ)Time.deltaTime を使う処理(Update / 物理)
UI / 入力停止動く(unscaledDeltaTime を使う UI / 入力は動く)
用途開発中のデバッグゲーム内ポーズメニュー実装

関連

  • Game ビューの解像度切替: Game タブ左上のドロップダウンで Free Aspect / 16:9 / 9:16 など
  • Maximize On Play: Game タブ右上のボタンで Play 時に Game ビューを最大化
  • Stats: Game ビュー右上の「Stats」ボタンで FPS / Draw Call / Triangle 数を表示

Play 中によく使う Window 操作

操作ショートカット
Console を開くCtrl + Shift + C
Game ビューに切替Ctrl + 2
Scene ビューに切替Ctrl + 1
Inspector / Hierarchy 切替各タブをクリック
Profiler を開くCtrl + 7
Game ビュー最大化Shift + Space

Profiler との連携

Play モード中に Profiler を有効化すると、フレームごとの CPU / GPU / メモリ使用量を計測できます:

  1. Window → Analysis → Profiler でウィンドウを開く
  2. 左上の Record(赤丸)ボタンを有効化
  3. Play 中、Pause を押した瞬間の Profiler でその時点のフレーム詳細が見える
  4. Step ボタンと組み合わせて1 フレームずつ Profiler のデータを進めるのがプロのデバッグ術

ビルド済みアプリ(.exe / .apk)でのデバッグ

Editor の Play モードと違い、ビルド版では Play/Pause/Step ボタンは使えません。以下で代替:

  • Time.timeScale = 0f でゲーム内ポーズ実装
  • Development Build: Build Settings で「Development Build」「Script Debugging」にチェック → Profiler が接続可能
  • Attach to Player: Visual Studio で実行中アプリにアタッチしてブレークポイント
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Unityの導入方法
  2. エディタ(画面)の説明
  3. プロジェクトの作成と削除
  4. オブジェクト
  5. コンポーネント
  6. スクリプト
  7. アセットのインポート方法
  8. ゲームの実行/一時停止/コマ送り
  9. パッケージのインポート
  10. ゲームの公開(Build)方法
  11. 重力の変更
  12. 用語集
  13. エラー一覧
  14. おすすめアセット一覧