MRが楽しい

MRやVRについて学習したことを書き残す

Header属性を使ってInspectorのフィールドにコメントを表示する

本日はUnityの小ネタ枠です。
Header属性を使ってInspectorのフィールドにコメントを表示する方法です。

Header属性

Header属性はInspectorのフィールドにヘッダーを追加するために利用できます。
スクリプト内のフィールドに本属性を設定すると、Inspectorのフィールド上部に設定したコメントが表示されます。
docs.unity3d.com

using UnityEngine;

public class HeaderTest : MonoBehaviour
{
    [Header("一回目のログテキスト")]
    public string logTextFirst;
    
    [Header("二回目のログテキスト")]
    public string logTextSecond;
    
    // 実行処理
}


フィールドでない要素に本属性を設定した場合

フィールドでない要素に本属性を設定するとエラーが発生します。
例えば以下のスクリプトの場合、自動実装プロパティ logText はフィールドでないため、エラーとなります。

using UnityEngine;

public class HeaderTest2 : MonoBehaviour
{
    [Header("ログテキスト")]
    public string logText { get; set; }
    
    // 実行処理
}
Assets\UITest\AttributeTest\Scripts\HeaderTes2.cs(7,6): error CS0592: Attribute 'Header' is not valid on this declaration type. It is only valid on 'field' declarations.

自動実装プロパティではプライベートの匿名フィールドが作成されており、上記のコードでは logText というフィールドは生成されません。
learn.microsoft.com

Inspectorに表示されないフィールドに本属性を設定した場合

また以下のようなInspectorに表示されないフィールドに本属性を設定すると、エラーは発生しませんがヘッダーは表示されません。

using UnityEngine;

public class HeaderTest3 : MonoBehaviour
{
    [Header("Inspector上で表示されないフィールド")]
    private string logTextFirst;
    
    [Header("Inspector上で表示されるフィールド")]
    public string logTextSecond;
    
    // 実行処理
}