
ゆーちゃん
ぼくがUnityで脱出ゲームを制作していて、実際によく使う小技をまとめました。
Contents
① メソッドがどこから呼ばれたか調べる
Debug.Log(System.Environment.StackTrace);リスタート時やボタンイベントなど、「なんでここが実行された?」という時に便利。
② ゲームを一時停止する
Debug.Break();実行中の状態をそのまま確認できます。
③ クリックされたオブジェクト名を確認
Debug.Log(gameObject.name);ボタンやアイテムのクリック判定確認に。
④ 今いるシーンを表示
Debug.Log(SceneManager.GetActiveScene().name);シーン遷移の確認。
⑤ オブジェクトが消えた原因を調べる
void OnDestroy()
{
Debug.Log(System.Environment.StackTrace);
}⑥ 非表示になった原因を調べる
void OnDisable()
{
Debug.Log(System.Environment.StackTrace);
}「気付いたらオブジェクトが消えていた」
「どのスクリプトが SetActive(false) を実行したのか分からない」ときに役立ちます。
⑦ UIの上をクリックしているか判定
EventSystem.current.IsPointerOverGameObject()背景クリックとUIクリックを分けたい時に便利。
⑧ マウス座標を確認
Debug.Log(Input.mousePosition);UI配置やクリック位置の調整に。
⑨ RectTransformの座標確認
Debug.Log(GetComponent<RectTransform>().anchoredPosition);UIを配置するときによく使います。
⑩ アクティブ状態を確認
Debug.Log(gameObject.activeSelf);「表示されない」と思ったらまず確認。
⑪ 子オブジェクト数を確認
Debug.Log(transform.childCount);アイテム欄やUI生成時に便利。
⑫ 変数をまとめて表示
Debug.Log($"Item:{itemID} Flag:{flag} Page:{page}");脱出ゲームはフラグ管理が多いのでかなり便利。
⑬ ボタンのイベントが何回呼ばれたか確認
private int count;
public void OnClick()
{
count++;
Debug.Log(count);
}ボタンイベントの二重登録確認に。
⑭ メソッドを呼んでいる場所を探す
Visual Studioなら、右クリック → すべての参照を検索

まとめ
今回は、2D・UIクリック型の脱出ゲーム制作で役立つデバッグ用の小技をまとめました。
どれも数秒で試せるものばかりですが、不具合の原因特定がぐっと楽になることがあります。
特に原因が分からないときは、
Debug.Log(System.Environment.StackTrace);Debug.Break();- 「すべての参照を検索」
この3つを試すだけでも、解決につながることが多いです。
今後も開発中に便利な小技を見つけたら、このページに追記していく予定です。


コメント