Unity - Inspector を整理するための Attribute -
初めに
Header や Space など Inspector をきれいに整理するためのAttribute(属性)をまとめます。
Index
Attribute(属性) とは
Attribute(属性) とは、対象の変数やクラスに付与する情報のことです。属性(Attribute)を付与する事で他の変数と区別したり、特別な挙動を設定することが出来ます。
Inspector を整理するための Attribute
Attribute は UnityEditor で用意してあるものがあります。以下では、そのなかでも Inspector を整理するために使えるものをまとめます。
HideInInspector(非表示)
//[HideInInspector] の直下のものが非表示 [HideInInspector] public int num;
非表示のため、public でも表示されません。
Header(ヘッダー)
//[Header("string")] でヘッダーを追加 [Header("ステータス")] public int Hp; public int Mp; public float Speed; public float Power;
Space(スペース)
public int Hp; //[Space(float)] で数値分の空白を追加 [Space(30)] public int Mp;
Tooltip(tip)
カーソル合わせるとtooltipを表示します。
[Tooltip("Hp, Mpはintやで")] public int Hp; public int Mp;
Range(スライダーの範囲を表示)
//[Range(float, float)]で直下のint, float のスライダーを表示 //左のfloatは最小値, 右のfloatは最大値 [Range(-50, 50)] public int Hp; public int Mp; //int, float 以外でもエラーは出ないが, 下の画像のようになる [Range(0, 100)] public string name;
Multiline(改行)
//[Multiline(int)] でint分改行 [Multiline(5)] public string name;
似たものに TextArea があります。違いは下記の TextArea の説明でします。
TextArea(テキストエリア)
//[TextArea(int, int)] でテキストエリアを追加 //左のintが行数の最小値、右のintが行数の最大値 [TextArea(2, 5)] public string name;
Multiline と似ていますが、微妙にちがいます。
〇 Multiline と TextArea の違い
(Multiline)
- 行が自動でスクロールされない
- 見かけの行数と実際の行数が同じ
(TextArea)
- 行が自動でスクロールする
- 右端まで文字を入力すると自動的に改行するため、見かけの行数と実際の行数は一致しない
SerializeField
private の変数も Inspector に表示させます。
[SerializeField] private string name;
最後に
Attribute は自作をすることもできます。