using System; using System.Collections.Generic; using System.Linq; using UnityEngine; namespace UnityEditor.Graphing { [Serializable] class GraphDrawingData : ISerializationCallbackReceiver { [SerializeField] private List m_SerializableSelection = new List(); [NonSerialized] private List m_Selection = new List(); public IEnumerable selection { get { return m_Selection; } set { m_Selection.Clear(); m_Selection.AddRange(value); } } public void OnBeforeSerialize() { m_SerializableSelection.Clear(); m_SerializableSelection.AddRange(m_Selection.Select(x => x.ToString())); } public void OnAfterDeserialize() { selection = m_SerializableSelection.Select(x => new Guid(x)); } } }