ゲーム制作その4 (制作編2)
せっかく、スクリプタブルオブジェクト(ScriptableObject)でアイテムを作ったが、シーン遷移すると情報が保持できない。
(UnityEditor上では、変更・保持できるが、ビルド版をプレイ中にはScriptableObjectを直接変更することができず。仮にシーン内で変更があったとしてもシーン遷移して、また元のシーンに戻ってくるとビルド時の情報に初期化されるイメージ)
アイテムに含まれるデータのうち、アイテムID、商品名、説明欄、アイテムタイプ、在庫最大数、所持最大数はゲーム内で変更する部分ではないので、問題はないが、相場価格、陳列価格、需要、耐久値、在庫数、所持数、陳列数は変更する部分なので、ScriptableObjectでは思うような管理ができない。
よって、別のデータ保管方法、編集方法を考える必要があった。
データの保存方法
・PlayerPrefs
・ScriptableObject
・JsonUtillty
・SQL
・NoSQL
・XML
・Binary Serialization
・CSV
・Cloud Storage
・インメモリーデータ
・YAML
様々な方法があるが、それぞれ特徴が異なることから、データの用途に応じて組み合わせることが効果的であるという考えに至った。
それぞれがどういったもので、どういった特徴を持っているのかを調べて、考慮した結果、アイテム処理関連については、SQLを用いることにした。
複数のプレイヤーが同時処理を行うものではないため、シングルプレイで小規模なゲームに適切そうなSQLiteというデータベース管理システムを用いることにした。
現在、データの変更がある部分については、データベース化する作業をしている。