IconList.cs 803 B

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace EnhancedHierarchy {
  5. [Serializable]
  6. public sealed class IconList : List<IconBase>, ISerializationCallbackReceiver {
  7. [SerializeField]
  8. private IconData[] data;
  9. public IconList() { }
  10. public IconList(IEnumerable<IconBase> collection) : base(collection) { }
  11. public void OnAfterDeserialize() {
  12. if (data == null)
  13. return;
  14. Clear();
  15. for (var i = 0; i < data.Length; i++)
  16. Add(data[i].Icon);
  17. }
  18. public void OnBeforeSerialize() {
  19. data = new IconData[Count];
  20. for (var i = 0; i < data.Length; i++)
  21. data[i] = new IconData() { Icon = this[i] };
  22. }
  23. }
  24. }