using UnityEngine; using UnityEditor; using FairyGUI; namespace FairyGUIEditor { /// <summary> /// /// </summary> [CustomEditor(typeof(DisplayObjectInfo))] public class DisplayObjectEditor : Editor { void OnEnable() { } public override void OnInspectorGUI() { DisplayObject obj = (target as DisplayObjectInfo).displayObject; if (obj == null) return; EditorGUILayout.LabelField(obj.GetType().Name + ": " + obj.id, (GUIStyle)"OL Title"); EditorGUILayout.Separator(); EditorGUI.BeginChangeCheck(); string name = EditorGUILayout.TextField("Name", obj.name); if (EditorGUI.EndChangeCheck()) obj.name = name; if (obj is Container) { EditorGUI.BeginChangeCheck(); bool fairyBatching = EditorGUILayout.Toggle("FairyBatching", ((Container)obj).fairyBatching); if (EditorGUI.EndChangeCheck()) ((Container)obj).fairyBatching = fairyBatching; } GObject gObj = obj.gOwner; if (gObj != null) { EditorGUILayout.Separator(); EditorGUILayout.LabelField(gObj.GetType().Name + ": " + gObj.id, (GUIStyle)"OL Title"); EditorGUILayout.Separator(); if (!string.IsNullOrEmpty(gObj.resourceURL)) { PackageItem pi = UIPackage.GetItemByURL(gObj.resourceURL); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Resource"); EditorGUILayout.LabelField(pi.name + "@" + pi.owner.name); EditorGUILayout.EndHorizontal(); } EditorGUI.BeginChangeCheck(); name = EditorGUILayout.TextField("Name", gObj.name); if (EditorGUI.EndChangeCheck()) gObj.name = name; if (gObj.parent != null) { string[] options = new string[gObj.parent.numChildren]; int[] values = new int[options.Length]; for (int i = 0; i < options.Length; i++) { options[i] = i.ToString(); values[i] = i; } EditorGUI.BeginChangeCheck(); int childIndex = EditorGUILayout.IntPopup("Child Index", gObj.parent.GetChildIndex(gObj), options, values); if (EditorGUI.EndChangeCheck()) gObj.parent.SetChildIndex(gObj, childIndex); } else { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Child Index"); EditorGUILayout.LabelField("No Parent"); EditorGUILayout.EndHorizontal(); } EditorGUI.BeginChangeCheck(); Vector3 position = EditorGUILayout.Vector3Field("Position", gObj.position); if (EditorGUI.EndChangeCheck()) gObj.position = position; EditorGUI.BeginChangeCheck(); Vector3 rotation = EditorGUILayout.Vector3Field("Rotation", new Vector3(gObj.rotationX, gObj.rotationY, gObj.rotation)); if (EditorGUI.EndChangeCheck()) { gObj.rotationX = rotation.x; gObj.rotationY = rotation.y; gObj.rotation = rotation.z; } EditorGUI.BeginChangeCheck(); Vector2 scale = EditorGUILayout.Vector2Field("Scale", gObj.scale); if (EditorGUI.EndChangeCheck()) gObj.scale = scale; EditorGUI.BeginChangeCheck(); Vector2 skew = EditorGUILayout.Vector2Field("Skew", gObj.skew); if (EditorGUI.EndChangeCheck()) gObj.skew = skew; EditorGUI.BeginChangeCheck(); Vector2 size = EditorGUILayout.Vector2Field("Size", gObj.size); if (EditorGUI.EndChangeCheck()) gObj.size = size; EditorGUI.BeginChangeCheck(); Vector2 pivot = EditorGUILayout.Vector2Field("Pivot", gObj.pivot); if (EditorGUI.EndChangeCheck()) gObj.pivot = pivot; EditorGUI.BeginChangeCheck(); string text = EditorGUILayout.TextField("Text", gObj.text); if (EditorGUI.EndChangeCheck()) gObj.text = text; EditorGUI.BeginChangeCheck(); string icon = EditorGUILayout.TextField("Icon", gObj.icon); if (EditorGUI.EndChangeCheck()) gObj.icon = icon; } } } }