using System; using UnityEngine; namespace CIG { public abstract class DictionaryAssetCollection : AssetCollection where TSerializable : DictionaryAssetCollection.SerializableDictionary where TSelf : DictionaryAssetCollection { protected override void GetAssetKeyValue(TSerializable asset, out TKey key, out TValue value) { key = asset.Key; value = asset.Value; } [Serializable] public class SerializableDictionary { public TKey Key { get { return this._key; } } public TValue Value { get { return this._value; } } [SerializeField] protected TKey _key; [SerializeField] protected TValue _value; } } }