ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - Inspector を整理するための Attribute -

初めに

 Header や Space など Inspector をきれいに整理するためのAttribute(属性)をまとめます。

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 は自作をすることもできます。