ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

Unity:ScriptableObject

サイドビューアクションで、ちょっとした困り事ができたので、それを調べる間、ScriptableObjectの実験をする事にした。

 

ScriptableObjectというのは、要は、シーンやスクリプトとは別扱いの、データベースのようなものらしい。

例えば、ある種類、仮にスライムが、スライムA ・スライムB・スライムC・スライムD・・・と多く存在するとして、そのスクリプトにMaxHPと処理用のhpの2つの変数を記載すると、それぞれのスライムのスクリプトに、MaxHPという同じ変数が存在する事になるため、メモリを無駄に消費してしまう事になる。

そこで、共通の数値であるMaxHPは、他のデーターベースに記載しておき、データベースを参照する形にした方が良いって事らしい。

 

一つのシーン構成だったら、空objectでEnemyデーター変数用のスクリプトをアタッチして、Enemy Data Managerみたいなのを作れば良さそうに思うけど、

ScriptableObjectだとシーンを跨いでアクセス可能らしいので、複数シーンに及ぶゲームを作成するなら、こちらの方が便利なのかもしれない。

 

作成方法は、ジョニさんのUnity幼稚園で、とても分かりやすく説明してくださっているので、これを参考にすれば良い。

www.youtube.com

 

作成したScriptableObjectは、こんな感じ。

実際にはここに、kanさんのメモ帳の、便利テクが追加してあるのだけど、

それは、

ScriptableObjectの参照をちょっと楽にしてみる【Unity】【ScriptableObject】 - (:3[kanのメモ帳]

を参照してください。

 


今回の習作に導入する事にしよう😀