using System; using System.Collections.Generic; namespace UnityEngine.Recorder { [Serializable] class SerializedDictionary : ISerializationCallbackReceiver { [SerializeField] List m_Keys = new List(); [SerializeField] List m_Values = new List(); readonly Dictionary m_Dictionary = new Dictionary(); public Dictionary dictionary { get { return m_Dictionary; } } public void OnBeforeSerialize() { m_Keys.Clear(); m_Values.Clear(); foreach (var keyPair in m_Dictionary) { m_Keys.Add(keyPair.Key); m_Values.Add(keyPair.Value); } } public void OnAfterDeserialize() { m_Dictionary.Clear(); for (int i = 0; i < m_Keys.Count; ++i) m_Dictionary.Add(m_Keys[i], m_Values[i]); } } }