Unity 独自クラスをScritableObjectで編集できるようにする。
ValueObjectライクにクラスを使いたかったので、フィールドを独自クラスにしたかった。
だけど、独自クラスだとインスペクタから値を変えれなかった。 調べると"[Serializable]"を使えばできるようなのでメモ。
下記のように独自クラスに"[System.Serializable]"を割り当てて さらに中のフィールドに"[SerializeField]"かpublicにすれば独自クラスもインスペクタから編集できるようになる。
using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class MyClass { [SerializeField] private int id = 0; [SerializeField] private string name = ""; public int Id { get; } public int Name { get; } public MyClass(MyClass object) { Id = object.Id; Name = object.Name; } }