この記事では、定義したクラスをインスペクター上で調整できるようにします。
今回は適当なクラス(Person)を定義し、これまた適当なクラス(Test)に参照を持たせてインスペクターから調整できるようにします。
このようにデータやそのデータに対しての処理を別クラスにまとめておくことでごちゃごちゃにならず、見やすくわかりやすいスクリプトにすることができます。
それでは、インスペクター上で調整できるクラスの定義の仕方を見ていきましょう!
クラスに[System.Serializable]
を付与することでインスペクター上でパラメータ調整をすることができるようになります。
先ほどの画像のPerson
クラスは以下のような感じで定義されています。
using UnityEngine;
// インスペクターから調整したいクラス
[System.Serializable]
class Person
{
public string name;
[SerializeField]
private int age;
private bool gender;
}
public class Test : MonoBehaviour
{
// [SerializeField] や public にしておく
[SerializeField]
private Person person;
}
ポイントとしては以下の3つです。
[System.Serializable]
付与するpublic
、または[SerializeField]
を付与public
、または[SerializeField]
を付与このように定義することでPerson
クラスの参照(public
や[SerializeField]
が付与されている場合)は、インスペクター上から調整することができます。
この記事では、定義したクラスを参照に受け取った際にインスペクター上から調整できるようにしました。
Resources
やDIコンテナを使ってももちろん良いですが、インスペクター上から調整できるのは簡単だしわかりやすくていいですよね!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ