処理を分割するためにクラスに分けたい、そして、そのクラスにはEditor上で調整したいパラメータがある。
けど、MonoBehaviourを増やしたくない。ってときは、
[System.Serializable]
を使えばOK。という話
例えば、こんなクラスがあって、
class GameManager : MonoBehaviour {
public float myButtonWidth;
public float myButtonHeight;
...
}
MyButtonクラスを新しく作ってbuttonWidthとbuttonHeightは、そっちに持たせたいなぁと思った時に、
class MyButton {
public float myButtonWidth;
public float myButtonHeight;
...
}
ってして、
class GameManager : MonoBehaviour {
public MyButton myButton;
...
}
ってするだけだと、インスペクタに表示されません。
しかし、以下のように、MyButton クラスの頭に [System.Serializable] を記載しておけば、
[System.Serializable]
class MyButton {
public float myButtonWidth;
public float myButtonHeight;
...
}