Enum型は少し変な仕様があったので備忘録として。
ulong指定はダメ
Enum型は型指定できるのですがulong(64bit)だとなぜかシリアライズできないということがわかりました。
enum EnumShort: ushort { A, } enum EnumULong : ulong { A, } public class Sample : MonoBehaviour { [SerializeField] EnumShort enumShort; [SerializeField] EnumULong enumULong; void Start() { } }
これをインスペクターで確認すると・・・
short型は問題ないんですが、ulong型にすると表示されません。
というかエラー出てますね。。
結論としては64bit型のEnumはダメよということです。
お気をつけて!!
参考
64bitのenumはUnityでシリアライズ出来ない - Qiita
あとがき
普通は型指定する必要なんてないのでどうでもいいのですが、
Enumをビットフィールドとして使う場合に32bitだと心もとないから64bitにしようとすると今回の問題が起きるということです。
とはいえ経験論からいって32個もフラグを作ることなんてなかったけどね。