Unity 框架

ReorderableListRef.cs 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEditor;
  5. using UnityEditorInternal;
  6. using UnityEngine;
  7. namespace TFramework
  8. {
  9. public class ReorderableListRef:IReference
  10. {
  11. public ReorderableList m_reorderableList;
  12. public bool m_isExpansion;
  13. public SerializedObject m_serializedObject;
  14. public SerializedProperty m_elements;
  15. public IList m_list;
  16. public Type m_elementType;
  17. public ReorderableListRef Init(SerializedObject serializedObject, SerializedProperty elements)
  18. {
  19. m_serializedObject = serializedObject;
  20. m_elements = elements;
  21. if(m_reorderableList!=null)
  22. {
  23. m_reorderableList.serializedProperty = elements;
  24. }
  25. else
  26. {
  27. m_reorderableList = new ReorderableList(serializedObject, elements);
  28. }
  29. return this;
  30. }
  31. public ReorderableListRef Init(IList elements, Type elementType)
  32. {
  33. m_list = elements;
  34. m_elementType = elementType;
  35. if (m_reorderableList != null)
  36. {
  37. m_reorderableList.list = elements;
  38. }
  39. else
  40. {
  41. m_reorderableList = new ReorderableList(elements, elementType);
  42. }
  43. return this;
  44. }
  45. public ReorderableListRef Init(SerializedObject serializedObject, SerializedProperty elements, bool draggable, bool displayHeader, bool displayAddButton, bool displayRemoveButton)
  46. {
  47. m_serializedObject = serializedObject;
  48. m_elements = elements;
  49. if (m_reorderableList != null)
  50. {
  51. m_reorderableList.serializedProperty = elements;
  52. m_reorderableList.draggable = draggable;
  53. m_reorderableList.displayAdd = displayAddButton;
  54. m_reorderableList.displayRemove = displayRemoveButton;
  55. }
  56. else
  57. {
  58. m_reorderableList = new ReorderableList(serializedObject, elements, draggable, displayHeader, displayAddButton, displayRemoveButton);
  59. }
  60. return this;
  61. }
  62. public ReorderableListRef Init(IList elements, Type elementType, bool draggable, bool displayHeader, bool displayAddButton, bool displayRemoveButton)
  63. {
  64. m_list = elements;
  65. m_elementType = elementType;
  66. if (m_reorderableList != null)
  67. {
  68. m_reorderableList.list = elements;
  69. m_reorderableList.draggable = draggable;
  70. m_reorderableList.displayAdd = displayAddButton;
  71. m_reorderableList.displayRemove = displayRemoveButton;
  72. }
  73. else
  74. {
  75. m_reorderableList = new ReorderableList(elements, elementType, draggable, displayHeader, displayAddButton, displayRemoveButton);
  76. }
  77. return this;
  78. }
  79. public void Reset()
  80. {
  81. m_reorderableList.list = null;
  82. m_isExpansion = false;
  83. }
  84. }
  85. }