// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ protected bool EventField(exUIControl.EventTrigger _eventTrigger) { bool deleted = false; GUILayout.BeginHorizontal(); GUILayout.Space(4f); GUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); // name GUILayout.Toggle(true, _eventTrigger.name, "dragtab"); // delete if (GUILayout.Button(styles.iconToolbarMinus, "InvisibleButton", GUILayout.Width(styles.iconToolbarMinus.width), GUILayout.Height(styles.iconToolbarMinus.height))) { deleted = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal("AS TextArea", GUILayout.MinHeight(10f)); GUILayout.BeginVertical(); // slots for (int i = 0; i < _eventTrigger.slots.Count; ++i) { exUIControl.SlotInfo slotInfo = SlotField(_eventTrigger.slots[i]); if (slotInfo == null) { _eventTrigger.slots.RemoveAt(i); --i; EditorUtility.SetDirty(target); } } // new slot EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameObject receiver = EditorGUILayout.ObjectField(null, typeof(GameObject), true, GUILayout.Width(150)) as GameObject; if (receiver != null) { exUIControl.SlotInfo slotInfo = new exUIControl.SlotInfo(); slotInfo.receiver = receiver; _eventTrigger.slots.Add(slotInfo); EditorUtility.SetDirty(target); } GUILayout.Label(styles.iconToolbarPlus, GUILayout.Width(20)); EditorGUILayout.EndHorizontal(); GUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.Space(4f); GUILayout.EndHorizontal(); return(deleted); }
// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ protected override void DoInspectorGUI() { base.DoInspectorGUI(); // if settingsStyles is null if (styles == null) { styles = new Styles(); } // GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Sync Size", GUILayout.Width(70), GUILayout.Height(20))) { exPlane targetPlane = target as exPlane; if (targetPlane.hasSprite) { exSpriteBase spriteBase = targetPlane.GetComponent <exSpriteBase>(); if (targetPlane.width != spriteBase.width) { targetPlane.width = spriteBase.width; EditorUtility.SetDirty(targetPlane); } if (targetPlane.height != spriteBase.height) { targetPlane.height = spriteBase.height; EditorUtility.SetDirty(targetPlane); } if (targetPlane.anchor != spriteBase.anchor) { targetPlane.anchor = spriteBase.anchor; EditorUtility.SetDirty(targetPlane); } if (targetPlane.offset != spriteBase.offset) { targetPlane.offset = spriteBase.offset; EditorUtility.SetDirty(targetPlane); } } } GUILayout.EndHorizontal(); // EditorGUILayout.Space(); EditorGUILayout.PropertyField(priorityProp); // active EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(activeProp, new GUIContent("Active")); if (EditorGUI.EndChangeCheck()) { foreach (Object obj in serializedObject.targetObjects) { exUIControl ctrl = obj as exUIControl; if (ctrl) { ctrl.activeSelf = activeProp.boolValue; EditorUtility.SetDirty(ctrl); } } } // grabMouseOrTouch EditorGUILayout.PropertyField(grabMouseOrTouchProp, new GUIContent("Grab Mouse Or Touch")); // use collider EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(useColliderProp, new GUIContent("Use Collider")); if (EditorGUI.EndChangeCheck()) { if (useColliderProp.boolValue) { foreach (Object obj in serializedObject.targetObjects) { exUIControl ctrl = obj as exUIControl; if (ctrl) { Collider collider = ctrl.GetComponent <Collider>(); if (collider == null) { collider = ctrl.gameObject.AddComponent <BoxCollider>(); } BoxCollider boxCollider = collider as BoxCollider; if (boxCollider != null) { Rect localRect = ctrl.GetLocalAABoundingRect(); boxCollider.center = new Vector3(localRect.center.x, localRect.center.y, boxCollider.center.z); boxCollider.size = new Vector3(localRect.width, localRect.height, boxCollider.size.z); } } } } else { foreach (Object obj in serializedObject.targetObjects) { exUIControl ctrl = obj as exUIControl; if (ctrl) { Collider[] colliders = ctrl.GetComponents <Collider>(); for (int i = 0; i < colliders.Length; ++i) { Object.DestroyImmediate(colliders[i]); } } } } } if (useColliderProp.boolValue) { EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Sync Collider", GUILayout.MinWidth(50), GUILayout.Height(20))) { foreach (Object obj in serializedObject.targetObjects) { exUIControl ctrl = obj as exUIControl; if (ctrl) { BoxCollider boxCollider = ctrl.GetComponent <BoxCollider>(); Rect localRect = ctrl.GetLocalAABoundingRect(); boxCollider.center = new Vector3(localRect.center.x, localRect.center.y, boxCollider.center.z); boxCollider.size = new Vector3(localRect.width, localRect.height, boxCollider.size.z); } } } EditorGUILayout.EndHorizontal(); } if (serializedObject.isEditingMultipleObjects == false) { exUIControl uiControl = target as exUIControl; // event adding selector List <string> eventDefNameList = new List <string>(); eventDefNameList.Add("Event List"); eventDefNameList.AddRange(uiControl.GetEventNames()); foreach (exUIControl.EventTrigger eventTrigger in uiControl.events) { int idx = eventDefNameList.IndexOf(eventTrigger.name); if (idx != -1) { eventDefNameList.RemoveAt(idx); } } int choice = EditorGUILayout.Popup("Add Event", 0, eventDefNameList.ToArray()); if (choice != 0) { exUIControl.EventTrigger newTrigger = new exUIControl.EventTrigger(eventDefNameList[choice]); uiControl.events.Add(newTrigger); EditorUtility.SetDirty(target); } // event triggers for (int i = 0; i < uiControl.events.Count; ++i) { EditorGUILayout.Space(); exUIControl.EventTrigger eventTrigger = uiControl.events[i]; if (EventField(eventTrigger)) { uiControl.events.RemoveAt(i); --i; EditorUtility.SetDirty(target); } EditorGUILayout.Space(); } } EditorGUILayout.Space(); }
// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ protected override void DoInspectorGUI() { base.DoInspectorGUI(); // if settingsStyles is null if ( styles == null ) { styles = new Styles(); } // GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if ( GUILayout.Button("Sync Size", GUILayout.Width(70), GUILayout.Height(20) ) ) { exPlane targetPlane = target as exPlane; if ( targetPlane.hasSprite ) { exSpriteBase spriteBase = targetPlane.GetComponent<exSpriteBase>(); if ( targetPlane.width != spriteBase.width ) { targetPlane.width = spriteBase.width; EditorUtility.SetDirty(targetPlane); } if ( targetPlane.height != spriteBase.height ) { targetPlane.height = spriteBase.height; EditorUtility.SetDirty(targetPlane); } if ( targetPlane.anchor != spriteBase.anchor ) { targetPlane.anchor = spriteBase.anchor; EditorUtility.SetDirty(targetPlane); } if ( targetPlane.offset != spriteBase.offset ) { targetPlane.offset = spriteBase.offset; EditorUtility.SetDirty(targetPlane); } } } GUILayout.EndHorizontal(); // EditorGUILayout.Space(); EditorGUILayout.PropertyField ( priorityProp ); // active EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField ( activeProp, new GUIContent("Active") ); if ( EditorGUI.EndChangeCheck() ) { foreach ( Object obj in serializedObject.targetObjects ) { exUIControl ctrl = obj as exUIControl; if ( ctrl ) { ctrl.activeSelf = activeProp.boolValue; EditorUtility.SetDirty(ctrl); } } } // grabMouseOrTouch EditorGUILayout.PropertyField ( grabMouseOrTouchProp, new GUIContent("Grab Mouse Or Touch") ); // use collider EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField ( useColliderProp, new GUIContent("Use Collider") ); if ( EditorGUI.EndChangeCheck() ) { if ( useColliderProp.boolValue ) { foreach ( Object obj in serializedObject.targetObjects ) { exUIControl ctrl = obj as exUIControl; if ( ctrl ) { Collider collider = ctrl.GetComponent<Collider>(); if ( collider == null ) { collider = ctrl.gameObject.AddComponent<BoxCollider>(); } BoxCollider boxCollider = collider as BoxCollider; if ( boxCollider != null ) { Rect localRect = ctrl.GetLocalAABoundingRect(); boxCollider.center = new Vector3( localRect.center.x, localRect.center.y, boxCollider.center.z); boxCollider.size = new Vector3 ( localRect.width, localRect.height, boxCollider.size.z ); } } } } else { foreach ( Object obj in serializedObject.targetObjects ) { exUIControl ctrl = obj as exUIControl; if ( ctrl ) { Collider[] colliders = ctrl.GetComponents<Collider>(); for ( int i = 0; i < colliders.Length; ++i ) { Object.DestroyImmediate(colliders[i]); } } } } } if ( useColliderProp.boolValue ) { EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if ( GUILayout.Button("Sync Collider", GUILayout.MinWidth(50), GUILayout.Height(20) ) ) { foreach ( Object obj in serializedObject.targetObjects ) { exUIControl ctrl = obj as exUIControl; if ( ctrl ) { BoxCollider boxCollider = ctrl.GetComponent<BoxCollider>(); Rect localRect = ctrl.GetLocalAABoundingRect(); boxCollider.center = new Vector3( localRect.center.x, localRect.center.y, boxCollider.center.z); boxCollider.size = new Vector3 ( localRect.width, localRect.height, boxCollider.size.z ); } } } EditorGUILayout.EndHorizontal(); } if ( serializedObject.isEditingMultipleObjects == false ) { exUIControl uiControl = target as exUIControl; // event adding selector List<string> eventDefNameList = new List<string>(); eventDefNameList.Add( "Event List" ); eventDefNameList.AddRange( uiControl.GetEventNames() ); foreach ( exUIControl.EventTrigger eventTrigger in uiControl.events ) { int idx = eventDefNameList.IndexOf(eventTrigger.name); if ( idx != -1 ) { eventDefNameList.RemoveAt(idx); } } int choice = EditorGUILayout.Popup ( "Add Event", 0, eventDefNameList.ToArray() ); if ( choice != 0 ) { exUIControl.EventTrigger newTrigger = new exUIControl.EventTrigger ( eventDefNameList[choice] ); uiControl.events.Add(newTrigger); EditorUtility.SetDirty(target); } // event triggers for ( int i = 0; i < uiControl.events.Count; ++i ) { EditorGUILayout.Space(); exUIControl.EventTrigger eventTrigger = uiControl.events[i]; if ( EventField ( eventTrigger ) ) { uiControl.events.RemoveAt(i); --i; EditorUtility.SetDirty(target); } EditorGUILayout.Space(); } } EditorGUILayout.Space(); }