[はじめに]
大変便利なScriptableObjectであるが、設計を誤ると
・プレイPlayボタンを押したらデータが消えてしまう
・Unityを再起動したらデータが消えてしまう
といった問題点が起こる。
これらの原因と解決法について書いていく
[ScriptableObjectの性質について]
その1.ScriptableObjectは静的なインスタンスである。(=ゲーム開始時やUnity起動時に初期データに戻る)
その2.ScriptableObjectを設計するには、ScriptableObjectクラスを継承する必要がある。
そして
その3.ScriptableObjectに保存出来るのは、
シリアライズのルール を満たしたもののみ。
ということ。
[原因]
僕の場合クラスに[System.Serialize]を属性づけしてなかったためだった。
[結論]
書くのめんどくさくなって力尽きました。
ようは、
シリアライズのルールをよく読んで守りましょう ということ