| 12345678910111213141516171819202122232425262728293031323334 | using System;using System.Collections.Generic;using UnityEngine;namespace EnhancedHierarchy {    [Serializable]    public sealed class IconList : List<IconBase>, ISerializationCallbackReceiver {        [SerializeField]        private IconData[] data;        public IconList() { }        public IconList(IEnumerable<IconBase> collection) : base(collection) { }        public void OnAfterDeserialize() {            if (data == null)                return;            Clear();            for (var i = 0; i < data.Length; i++)                Add(data[i].Icon);        }        public void OnBeforeSerialize() {            data = new IconData[Count];            for (var i = 0; i < data.Length; i++)                data[i] = new IconData() { Icon = this[i] };        }    }}
 |