【Unity】デバッグのためにシーン上のオブジェクトに情報を表示
ゲームオブジェクトにデバッグに有効な情報を表示することができます。
この機能はエディターで動作するため、ビルド時には表示されません。
Sceneビューには表示されますが、Gameビューには表示されません。
実行結果
MobStatusスクリプトにライフ情報(Life)が登録されている条件のサンプルです。
サンプルのコードはオブジェクト名だけを表示するものです。
キャラクタの移動に伴って、情報も移動します。
コード
このコードを必要なオブジェクトにアタッチします。
再生中でなくても動作します。
例えば、シーンウィンドウでオブジェクトを移動しても表示はついてきます。
using UnityEngine;
// Unityエディタ時のみusingする必要がある
#if UNITY_EDITOR
using UnityEditor;
#endif
public class DebugMobStatus : MonoBehaviour
{
// Unityエディタ時のみGizmo表示を行う
#if UNITY_EDITOR
void OnDrawGizmos()
{
// 表示色を指定
GUI.color = Color.black;
// オブジェクトの位置に「オブジェクト名」をラベル表示
Handles.Label(transform.position, $"{name}");
}
#endif
}
このコードは、Unityゲームエンジンで使用されるスクリプトであり、オブジェクトの位置に名前を表示するためにGizmoを使用しています。
まず、Unityの名前空間からUnityEngine
を使用します。次に、Unityエディタでのみ必要なUnityEditor
を条件付きで使用します。つまり、Unityエディタでのみ実行されるコードブロックを定義することができます。
DebugMobStatus
クラスはMonoBehaviour
クラスを継承しており、Gizmoを描画するためにOnDrawGizmos
メソッドを定義しています。このメソッドは、Unityエディタでシーンビューに表示されたオブジェクトに対して、特定の表示を行うことができます。
OnDrawGizmos
メソッドでは、まずGUI.color
を使用して表示色を指定し、その後Handles.Label
を使用してオブジェクトの位置にオブジェクト名を表示するためにGizmoを使用します。#if UNITY_EDITOR
で囲まれた部分は、Unityエディタでのみコンパイルされます。
ディスカッション
コメント一覧
まだ、コメントがありません