Ananke Csv Master 応用2.ID重複を許容する

もくじへ

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の要素を指定するアクセサになるので、要素を超える値を指定すると例外が発生するので、その点ご注意ください。

次へ

コメント

タイトルとURLをコピーしました