サイドビューアクションで、ちょっとした困り事ができたので、それを調べる間、ScriptableObjectの実験をする事にした。
ScriptableObjectというのは、要は、シーンやスクリプトとは別扱いの、データベースのようなものらしい。
例えば、ある種類、仮にスライムが、スライムA ・スライムB・スライムC・スライムD・・・と多く存在するとして、そのスクリプトにMaxHPと処理用のhpの2つの変数を記載すると、それぞれのスライムのスクリプトに、MaxHPという同じ変数が存在する事になるため、メモリを無駄に消費してしまう事になる。
そこで、共通の数値であるMaxHPは、他のデーターベースに記載しておき、データベースを参照する形にした方が良いって事らしい。
一つのシーン構成だったら、空objectでEnemyデーター変数用のスクリプトをアタッチして、Enemy Data Managerみたいなのを作れば良さそうに思うけど、
ScriptableObjectだとシーンを跨いでアクセス可能らしいので、複数シーンに及ぶゲームを作成するなら、こちらの方が便利なのかもしれない。
作成方法は、ジョニさんのUnity幼稚園で、とても分かりやすく説明してくださっているので、これを参考にすれば良い。
作成したScriptableObjectは、こんな感じ。
実際にはここに、kanさんのメモ帳の、便利テクが追加してあるのだけど、
それは、
ScriptableObjectの参照をちょっと楽にしてみる【Unity】【ScriptableObject】 - (:3[kanのメモ帳]
を参照してください。
今回の習作に導入する事にしよう😀