【Unity】RPGを作るチュートリアルその82 フラグに関するデバッグ機能を追加
- 2025.06.05
- RPGチュートリアル
- RPG, Unity, ゲーム開発, チュートリアル

シンプルなRPGをUnityで作るチュートリアルシリーズの82回目です。
第81回ではイベントの発生条件などで使用するフラグを管理するための機能を実装しました。
今回はゲームの実行中にフラグの状態を出力する機能、フラグの状態を切り替える機能を実装したいと思います。
制作環境
MacBook Pro 2023 Apple M2 Max
Unity6 (6000.0.30f1) Silicon
作業内容と順序
シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。
チュートリアルの一覧
このシリーズ全体の一覧は以下のページにまとめています。
前回の内容
前回はイベントの発生条件などで使用するフラグを管理するための機能を実装しました。
フラグのデバッグ機能
前回の実装でゲームの実行中にフラグを管理する機能ができました。このままイベントの実装へ……とも思いましたが、ゲームの実行中にフラグの状態を確認できたり、フラグの値を変更できたりするとイベントの作成が捗るので、このタイミングでフラグのデバッグ用機能を実装したいと思います。
特にイベントの開始条件の確認はゲームの進行に合わせて確認すると結構大変なので、任意の値に設定して、ちゃんと意図したページのイベント内容になっているか確認できると実装が楽なんですよね。
とは言いつつ、ビルドした後のゲームで確認できる形ではなく、Unityエディタ上で動作させている時に確認できるようにするにとどめたいと思います。デバッグ用のUIを作るのも結構大変なので、まずは中身を確認できる部分だけ作ってコンソールでチェックする形式にします。チュートリアルの完成後に拡張機能として作るのはアリかもしれません。やりたいなーと思いつつ、そこまで手が回るかは今は考えないこととします(遠い目)
「BattleTester」や「StatusChanger」などのデバッグ用機能と同じように、Inspectorウィンドウからチェックボックスをクリックすることで、フラグの中身の取得やフラグの値変更ができるようにしていきます。
フラグのデバッグ機能の実装
Projectウィンドウから「Assets/Scripts/Debug」のフォルダを開き、MonoBehaviourのスクリプトファイルを作成します。名前は [FlagTester] にしました。

作成した「FlagTester」の中身は以下のように記載しました。
フラグの状態を保持している「FlagManager」への参照をフィールドとして保持するようにします。また、各機能についてはHeaderの属性で区切っています。
Update()ではフレームカウントが5になってから各動作が実施できるようにします。これはAddressablesのロードを待つためです。
OutputFlags()のメソッドではフラグの状態をコンソールに出力するようにします。デバッグ用に情報を確認するため、フラグ名や値を太字にするように<b>のタグを使っています。今回はフラグの数が少ないので1行ずつ出力するようにしていますが、規模が大きくなってきた場合はフラグの数も増えるため、OutputFlag()のメソッドでフラグ名を指定して出力する方法も用意しています。
規模が大きい場合はカテゴリごとにフラグ定義を分割するなどしておくと良いかもしれません。
SetFlagState()では指定したフラグの状態を変更します。手入力でフラグ名を入れるのは若干めんどくさい気もしますが、プルダウンにするとフラグ名が多い場合に探すのが大変になるのでこの形にしました。フラグ名の定義に含まれていない名前を指定するとリストに追加されますが、デバッグ用途なので存在しないフラグ名を指定するのも許容しています。
フラグの管理クラスの修正
デバッグ用に動作を確認していたところ、前回作成したフラグの管理クラスで修正すべき点を見つけてしまったので、こちらを修正させてください。修正したいのは以下の2点です。
- [Serializable]の削除
- フレームカウント確認の処理を修正
クラス名の前に[Serializable]の属性がついていたのを削除しました。それに伴い、Systemの名前空間のusingディレクティブも削除しました。
Update()では、フレーム数の確認を行う意図だったのですが、なぜか_flagStatesのカウント数を確認していたので、こちらも修正しました。きっと疲れていたんだと思います。
スクリプトのアタッチ
スクリプトを保存したらゲームオブジェクトにアタッチしていきます。
スクリプトをアタッチするためのゲームオブジェクトを作成します。Hierarchyウィンドウから「Managers」の下に空のゲームオブジェクトを作成します。名前は [FlagTester] にしました。

Inspectorウィンドウでは「FlagTester」のスクリプトをアタッチします。「FlagManager」についてもアサインしておきましょう。

動作確認
スクリプトをアタッチしたらゲームを実行して動作を確認します。ゲーム実行後、「FlagTester」のInspectorウィンドウで「Output All Flag States」のチェックボックスをクリックして、コンソールにフラグの状態が出力されることを確認します。

また、個別のフラグの状態を出力できること、指定したフラグの状態を変更できることを確認しておきましょう。
今回のブランチ
まとめ
今回はゲームの実行中にフラグの状態を出力する機能、フラグの状態を切り替える機能を実装しました。イベントの開始条件を確認する上ではゲームの実行中にフラグの状態を切り替えられると便利です。
次回はイベントのデータクラスを実装していきます。手戻りを防ぐためにイベント機能全体をある程度のところまで実装してからチュートリアルの形にしたいので、少し間が空くかもしれません。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】RPGを作るチュートリアルその81 ゲームの進行フラグの管理機能を実装 2025.06.05
-
次の記事
記事がありません
コメントを書く