こんにちは、SAT-BOXのコアラです。
今日は偶然見つけたUnityの機能を紹介したいと思います。
その前に、皆さんは作成したクラスの変数をInspectorに表示したことがありますか?
[System.Serializable]をつけることによって、そのクラスの変数をInspectorに表示したり変更することができます。
今回は例として、Animalというクラスを表示してみます
using UnityEngine; public class Sample : MonoBehaviour { public Animal animal; } [System.Serializable] public class Animal { public string name; [Header("年齢")] public int age; [Header("身長(cm)")] public float height; [Header("体重(kg)")] public float weight; }
こうすることで
こうなります。
さて、ここからが本題ですが、こういったものを作るとき、配列にして使うこともあるかと思います。
しかし配列にすると、Inspectorにはこのように表示されると思います。
ここで問題なのは、各要素の見出しがElementになっていて、どこに何があるのか分からないという点ですね!
非常に分かりづらいです!
しかし!
この見出し、変えることができます!
やり方は簡単です。
Inspectorから各要素を開いて、Nameのところに文字を入れてみましょう。
すると・・・
なんと、Elementの部分が、Nameに入れた文字に変わりました!
こうすれば、どこに何があるかも一目で分かりますね。
では、なぜ変わったのかですが・・・
表示している変数の中にstring型の変数があれば、Elementの文字がstring型と同じになる、という仕様になっているようです。
しかし、見出しを変えるには条件があります。
それは…string型がクラスの変数の中で一番上に表示されていること です。
試しに、int型のAgeを一番上にしたところ、Elementに戻ってしまいました。
string型が一番上にないと変えれないようですね。
これで以上です。
この機能、あまり使う機会はないかもしれませんが、知っていて損はないと思います!