
【Unity】データベースのすすめ
自販機でZONEを買って、そのまま置いてきてしまったテトラさんです。
シトロンワールドというゲームを作っていて、たまに開発記事を書いたりしています。フォローして未来を目撃しましょう。
前回、ScriptableObjectを紹介しました。今回はその続きになります。
データベースとは?
前回紹介したように、キャラクター、アイテムなど、それぞれ同じ種類のパラメータを持ってるものなどを一括で管理する際に便利な機能です。
実践
前回簡単なScriptableObjectを作成しました。今回はこれをListで管理できるように改造します。

これを…こう!

新しくTestDatasといったクラスを作成、TestDatasとします。その型でListを宣言します。
出来たらScriptableObjectを作成しましょう。


空のリストが出来ていると思うので、+を押して適当な値を入れます。
そして参照する適当なスクリプトを書き、適当なオブジェクトにアタッチします。

forで要素の数(testData.testDatas.Count)だけ繰り返し、オブジェクトの変数にデータベースから参照した値を代入し表示します。
また、要素での検索処理などを作る場合に使えるので、foreachもあわせて覚えておきましょう。

実行結果

こういうことです。i番目のデータを参照します。メリットは前回と同じくアセットに保存できる点です。
この例じゃデータベース感がありませんが、自分の作品ではこんな感じで使っています。




使い手やゲームによって様々な仕様が作れる思うので、試行錯誤して自己流の使い方を模索するのが最適解だと思います。
文字での説明が難儀でしたが、レパートリー概念のあるゲームを作る上でデータの管理というものは避けられないので、いろいろ試したりしてみててください。
参考になったり面白かったりしたらインプレッションを残していってくれると嬉しいです。
フォロー、スキ!のエネルギーがシトロンに変換され、テトラさんのエネルギーになります。ぜひお願いします。
それでは、良き創作ライフを!