Unity開発

【Unity】インスペクターを見やすく整理する属性まとめ|Header・Tooltip・Space・TextArea・ReadOnlyを解説

使用環境

・Unity Editor:2021.3.18f1

この記事で分かること

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

インスペクターのヘッダー・説明・区切りとは?

ピッグダディ

今日は、Unityの「インスペクターを見やすくする方法」について解説するよ。コードを書いてると、Inspector上の変数がごちゃごちゃして見づらくなることってあるよね。

ピッグボーイ

めっちゃあります!
どれがどの機能の変数なのか分からなくて、いじるの怖くなります…

ピッグガール

たしか、[Header] とか [Tooltip] を使うと区切ったり
説明出せたりするって聞いたことあります!

ピッグダディ

その通り!
今回はUnity標準の属性に加えて、「読み取り専用の独自属性」の作り方まで紹介するよ。コピペですぐ使える便利スニペット付きだから、チーム開発やデバッグ効率が一気にアップするよ!

[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なこの属性たちであなたのインスペクターをもっと分かりやすく整えていきましょう!