もくじへ
ID重複を許容する
AnankeCsvMasterではDataをDictionaryで保持するため、基本的にIDの重複は認めない設計になっています。
しかし、例えば技のHit情報を考えるとき、技のIDをキーとして、複数のHitデータを紐づけられると便利です。
こういった用途に対応するため、IDの重複を許可できる設定を設けてあります。
設定方法
DataSetに値を追加するときにBasicInformationという領域があったと思います。
ここの「Index Duplicatable」をtrueに設定することで、IDが重複してもエラーなくインポートされるようになります。
設定を変更したら、Save Headerをクリックして保存し、その後でCreate ScriptableObject and Impoterでクラスを出力し直してください。
データのアクセス方法
この場合、データのアクセス方法が若干変わります。
こちらの記事で作成したMasterDataHolderを使用する場合の例を示します。
もともと下記のような形でのアクセスになっていました。
MasterDataHolder.Instance.PlayerData.CharacterData["p001"].Name;
この時のデータ構造はDictionary<key, Data>のような形になっています。
Id重複を許容する場合、この構造がDictionary<key, List<Data>>となります。
このため、データ取得にはListのIndexの値を指定する必要があります。
なので、Index指定用のアクセサ([0])を追加し、下記のような形でアクセスします。
MasterDataHolder.Instance.PlayerData.CharacterData["p001"][0].Name;
[0]はListの要素を指定するアクセサになるので、要素を超える値を指定すると例外が発生するので、その点ご注意ください。
コメント