docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class SerializedDictionary<K, V>

    Unity can't serialize Dictionary so here's a custom wrapper that does. Note that you have to extend it before it can be serialized as Unity won't serialized generic-based types either.

    Inheritance
    object
    Dictionary<K, V>
    SerializedDictionary<K, V, K, V>
    SerializedDictionary<K, V>
    Implements
    IDictionary<K, V>
    ICollection<KeyValuePair<K, V>>
    IReadOnlyDictionary<K, V>
    IReadOnlyCollection<KeyValuePair<K, V>>
    IEnumerable<KeyValuePair<K, V>>
    IDictionary
    ICollection
    IEnumerable
    IDeserializationCallback
    ISerializable
    ISerializationCallbackReceiver
    Inherited Members
    SerializedDictionary<K, V, K, V>.SerializeKey(K)
    SerializedDictionary<K, V, K, V>.SerializeValue(V)
    SerializedDictionary<K, V, K, V>.DeserializeKey(K)
    SerializedDictionary<K, V, K, V>.DeserializeValue(V)
    SerializedDictionary<K, V, K, V>.OnBeforeSerialize()
    SerializedDictionary<K, V, K, V>.OnAfterDeserialize()
    Dictionary<K, V>.Add(K, V)
    Dictionary<K, V>.Clear()
    Dictionary<K, V>.ContainsKey(K)
    Dictionary<K, V>.ContainsValue(V)
    Dictionary<K, V>.EnsureCapacity(int)
    Dictionary<K, V>.GetEnumerator()
    Dictionary<K, V>.GetObjectData(SerializationInfo, StreamingContext)
    Dictionary<K, V>.OnDeserialization(object)
    Dictionary<K, V>.Remove(K)
    Dictionary<K, V>.Remove(K, out V)
    Dictionary<K, V>.TrimExcess()
    Dictionary<K, V>.TrimExcess(int)
    Dictionary<K, V>.TryAdd(K, V)
    Dictionary<K, V>.TryGetValue(K, out V)
    Dictionary<K, V>.Comparer
    Dictionary<K, V>.Count
    Dictionary<K, V>.this[K]
    Dictionary<K, V>.Keys
    Dictionary<K, V>.Values
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEngine.Rendering
    Assembly: Unity.RenderPipelines.Core.Runtime.dll
    Syntax
    [Serializable]
    public class SerializedDictionary<K, V> : SerializedDictionary<K, V, K, V>, IDictionary<K, V>, ICollection<KeyValuePair<K, V>>, IReadOnlyDictionary<K, V>, IReadOnlyCollection<KeyValuePair<K, V>>, IEnumerable<KeyValuePair<K, V>>, IDictionary, ICollection, IEnumerable, IDeserializationCallback, ISerializable, ISerializationCallbackReceiver
    Type Parameters
    Name Description
    K

    The key type

    V

    The value

    Examples

    public sealed class MyDictionary : SerializedDictionary<KeyType, ValueType>

    Methods

    DeserializeKey(K)

    Conversion to serialize a key

    Declaration
    public override K DeserializeKey(K key)
    Parameters
    Type Name Description
    K key

    The key to serialize

    Returns
    Type Description
    K

    The Key that has been serialized

    Overrides
    SerializedDictionary<K, V, K, V>.DeserializeKey(K)

    DeserializeValue(V)

    Conversion to serialize a value

    Declaration
    public override V DeserializeValue(V val)
    Parameters
    Type Name Description
    V val

    The value

    Returns
    Type Description
    V

    The value

    Overrides
    SerializedDictionary<K, V, K, V>.DeserializeValue(V)

    SerializeKey(K)

    Conversion to serialize a key

    Declaration
    public override K SerializeKey(K key)
    Parameters
    Type Name Description
    K key

    The key to serialize

    Returns
    Type Description
    K

    The Key that has been serialized

    Overrides
    SerializedDictionary<K, V, K, V>.SerializeKey(K)

    SerializeValue(V)

    Conversion to serialize a value

    Declaration
    public override V SerializeValue(V val)
    Parameters
    Type Name Description
    V val

    The value

    Returns
    Type Description
    V

    The value

    Overrides
    SerializedDictionary<K, V, K, V>.SerializeValue(V)

    Implements

    IDictionary<TKey, TValue>
    ICollection<T>
    IReadOnlyDictionary<TKey, TValue>
    IReadOnlyCollection<T>
    IEnumerable<T>
    IDictionary
    ICollection
    IEnumerable
    IDeserializationCallback
    ISerializable
    ISerializationCallbackReceiver

    Extension Methods

    ReflectionUtils.GetField(object, string)
    ReflectionUtils.GetFields(object)
    ReflectionUtils.Invoke(object, string, params object[])
    ReflectionUtils.SetField(object, string, object)
    AnalyticsUtils.ToNestedColumnWithDefault<T>(T, T, bool)
    AnalyticsUtils.ToNestedColumn<T>(T, bool)
    AnalyticsUtils.ToNestedColumn<T>(T, T)
    In This Article
    • Methods
      • DeserializeKey(K)
      • DeserializeValue(V)
      • SerializeKey(K)
      • SerializeValue(V)
    • Implements
    • Extension Methods
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)