DisplayObjectEditor.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using UnityEngine;
  2. using UnityEditor;
  3. using FairyGUI;
  4. namespace FairyGUIEditor
  5. {
  6. /// <summary>
  7. ///
  8. /// </summary>
  9. [CustomEditor(typeof(DisplayObjectInfo))]
  10. public class DisplayObjectEditor : Editor
  11. {
  12. void OnEnable()
  13. {
  14. }
  15. public override void OnInspectorGUI()
  16. {
  17. DisplayObject obj = (target as DisplayObjectInfo).displayObject;
  18. if (obj == null)
  19. return;
  20. EditorGUILayout.LabelField(obj.GetType().Name + ": " + obj.id, (GUIStyle)"OL Title");
  21. EditorGUILayout.Separator();
  22. EditorGUI.BeginChangeCheck();
  23. string name = EditorGUILayout.TextField("Name", obj.name);
  24. if (EditorGUI.EndChangeCheck())
  25. obj.name = name;
  26. if (obj is Container)
  27. {
  28. EditorGUI.BeginChangeCheck();
  29. bool fairyBatching = EditorGUILayout.Toggle("FairyBatching", ((Container)obj).fairyBatching);
  30. if (EditorGUI.EndChangeCheck())
  31. ((Container)obj).fairyBatching = fairyBatching;
  32. }
  33. GObject gObj = obj.gOwner;
  34. if (gObj != null)
  35. {
  36. EditorGUILayout.Separator();
  37. EditorGUILayout.LabelField(gObj.GetType().Name + ": " + gObj.id, (GUIStyle)"OL Title");
  38. EditorGUILayout.Separator();
  39. if (!string.IsNullOrEmpty(gObj.resourceURL))
  40. {
  41. PackageItem pi = UIPackage.GetItemByURL(gObj.resourceURL);
  42. EditorGUILayout.BeginHorizontal();
  43. EditorGUILayout.PrefixLabel("Resource");
  44. EditorGUILayout.LabelField(pi.name + "@" + pi.owner.name);
  45. EditorGUILayout.EndHorizontal();
  46. }
  47. EditorGUI.BeginChangeCheck();
  48. name = EditorGUILayout.TextField("Name", gObj.name);
  49. if (EditorGUI.EndChangeCheck())
  50. gObj.name = name;
  51. if (gObj.parent != null)
  52. {
  53. string[] options = new string[gObj.parent.numChildren];
  54. int[] values = new int[options.Length];
  55. for (int i = 0; i < options.Length; i++)
  56. {
  57. options[i] = i.ToString();
  58. values[i] = i;
  59. }
  60. EditorGUI.BeginChangeCheck();
  61. int childIndex = EditorGUILayout.IntPopup("Child Index", gObj.parent.GetChildIndex(gObj), options, values);
  62. if (EditorGUI.EndChangeCheck())
  63. gObj.parent.SetChildIndex(gObj, childIndex);
  64. }
  65. else
  66. {
  67. EditorGUILayout.BeginHorizontal();
  68. EditorGUILayout.PrefixLabel("Child Index");
  69. EditorGUILayout.LabelField("No Parent");
  70. EditorGUILayout.EndHorizontal();
  71. }
  72. EditorGUI.BeginChangeCheck();
  73. Vector3 position = EditorGUILayout.Vector3Field("Position", gObj.position);
  74. if (EditorGUI.EndChangeCheck())
  75. gObj.position = position;
  76. EditorGUI.BeginChangeCheck();
  77. Vector3 rotation = EditorGUILayout.Vector3Field("Rotation", new Vector3(gObj.rotationX, gObj.rotationY, gObj.rotation));
  78. if (EditorGUI.EndChangeCheck())
  79. {
  80. gObj.rotationX = rotation.x;
  81. gObj.rotationY = rotation.y;
  82. gObj.rotation = rotation.z;
  83. }
  84. EditorGUI.BeginChangeCheck();
  85. Vector2 scale = EditorGUILayout.Vector2Field("Scale", gObj.scale);
  86. if (EditorGUI.EndChangeCheck())
  87. gObj.scale = scale;
  88. EditorGUI.BeginChangeCheck();
  89. Vector2 skew = EditorGUILayout.Vector2Field("Skew", gObj.skew);
  90. if (EditorGUI.EndChangeCheck())
  91. gObj.skew = skew;
  92. EditorGUI.BeginChangeCheck();
  93. Vector2 size = EditorGUILayout.Vector2Field("Size", gObj.size);
  94. if (EditorGUI.EndChangeCheck())
  95. gObj.size = size;
  96. EditorGUI.BeginChangeCheck();
  97. Vector2 pivot = EditorGUILayout.Vector2Field("Pivot", gObj.pivot);
  98. if (EditorGUI.EndChangeCheck())
  99. gObj.pivot = pivot;
  100. EditorGUI.BeginChangeCheck();
  101. string text = EditorGUILayout.TextField("Text", gObj.text);
  102. if (EditorGUI.EndChangeCheck())
  103. gObj.text = text;
  104. EditorGUI.BeginChangeCheck();
  105. string icon = EditorGUILayout.TextField("Icon", gObj.icon);
  106. if (EditorGUI.EndChangeCheck())
  107. gObj.icon = icon;
  108. }
  109. }
  110. }
  111. }