Unity開発

【Unity】インスペクターにヘッダー・説明・区切りを表示する方法まとめ|見やすく整理しよう!

Unityでスクリプトを書くと、インスペクター上に変数がずらっと並びがち。
ゲームバランス調整やデザイナーとの連携を考えると、「どの変数が何のためのものか?」が一目で分かるようにしたいですよね。
この記事では、インスペクター上にヘッダー・説明文・区切りなどを追加する便利な属性(Attribute)を、コピペOKで一挙に紹介します!

この記事で分かること

  • Unityのインスペクターを見やすくする標準の属性
  • タイトル表示や説明文の挿入方法
  • 実行中に変更不可にする「読み取り専用属性」の作成方法
  • 整理されたインスペクターで開発効率UP!

[Header(“タイトル”)]|区切りタイトルを表示

  • インスペクター上に太字で目立つタイトルを表示
  • 関連変数をまとめるのに便利
[Header("プレイヤーの基本情報")]
public float moveSpeed;
public int maxHP;

[Tooltip(“説明文”)]|マウスオーバーで説明を表示

  • インスペクターで変数にマウスを当てると吹き出し表示される
  • デザイナーや他の開発者への配慮に◎
[Tooltip("移動速度。単位はm/s")]
public float moveSpeed;

[Space(n)]|余白で視覚的にブロック分け

  • 変数間にスペース(ピクセル単位)を追加
  • ごちゃついたインスペクターの視認性向上に
public int score;

[Space(10)]
public int life;

[TextArea]|複数行テキストを扱いたいときに

  • 複数行の文字列入力フィールドを生成
  • セリフ、メモ、ログなどに最適
[TextArea]
public string developerMemo;

【応用】読み取り専用フィールドを作る(独自属性)

Unityには readonly をインスペクター上で表現する標準機能がありませんが、
カスタム属性を使えば簡単に実現できます!

Step1:ReadOnlyAttribute.cs(属性クラス)

using UnityEngine;

public class ReadOnlyAttribute : PropertyAttribute { }

Step2:ReadOnlyDrawer.cs(表示制御)

#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;

[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
public class ReadOnlyDrawer : PropertyDrawer
{
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        GUI.enabled = false;
        EditorGUI.PropertyField(position, property, label, true);
        GUI.enabled = true;
    }
}
#endif

Step3:使い方(ReadOnlyを付けるだけ)

  • エディタ上で値は見えるが編集不可
  • 実行中に変化を見せたいときや、デバッグ用途に便利
[ReadOnly]
public int debugCount;

整ったインスペクターはメリットだらけ

項目効果
Header / Space視覚的な区切りで分類しやすくなる
Tooltip他の人が読んでも意味が伝わる
TextArea長文を入力する用途に便利
ReadOnlyデバッグ用変数を誤って変更する事故を防止

まとめ

ポイント内容
Unity標準属性だけでもインスペクターを見やすくできる
説明やタイトルは [Header] や [Tooltip] で簡単に導入可能
読み取り専用はカスタム属性で実現
整ったUIはチーム開発・デバッグ効率を大きく改善する

コピペOKなこの属性たちであなたのインスペクターをもっと分かりやすく整えていきましょう!