public override void OnInspectorGUI() { if (uiManager != null && serializedObj != null) { // Update the serializedProperty - always do this in the beginning of OnInspectorGUI. serializedObj.Update(); GUI.enabled = false; script = EditorGUILayout.ObjectField("Script:", script, typeof(MonoScript), false) as MonoScript; GUI.enabled = true; if (!Application.isPlaying) { if (GUILayout.Button("Despawn Not Starting")) { Debug.Log("Despawn not starting"); Undo.RegisterCreatedObjectUndo(uiManager, uiManager.name); uiManager.DespawnAllScreensOnSceneThatAreNotInitial(); } GUILayout.BeginHorizontal(); if (GUILayout.Button("Spawn All")) { SpawnAll(); } if (GUILayout.Button("Despawn All")) { DespawnAll(); } GUILayout.EndHorizontal(); if (GUILayout.Button("Create new Screen")) { CreateNewScreen(); } if (GUILayout.Button("Create Controller from Selected(Lock!)")) { CreateFromSelected(); } if (GUILayout.Button("Update Screen Ids")) { UpdateIds(); } if (GUILayout.Button("Update Prefab References")) { UpdatePrefabs(); } } GUILayout.BeginHorizontal(); if (GUILayout.Button("Enable All")) { uiManager.SwitchAllScreens(true); } if (GUILayout.Button("Disable All")) { uiManager.SwitchAllScreens(false); } GUILayout.EndHorizontal(); if (GUILayout.Button("Recalculate Screen Positions")) { uiManager.ResetAllPositions(); } bool eliminated = false; if (!Application.isPlaying) { if (GUILayout.Button("Reset")) { ResetManager(); eliminated = true; } } EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(serializedObj.FindProperty("autoInitialize")); EditorGUILayout.PropertyField(serializedObj.FindProperty("dontDestroyOnLoad")); EditorGUILayout.PropertyField(serializedObj.FindProperty("justDisableOnScreenDeactivation")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerReferenceResolution")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerMode")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerScreenMatchMode")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasMatchModeRange")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerPixelsPerUnit")); EditorGUILayout.PropertyField(serializedObj.FindProperty("screenPositionNumberOfColumns")); EditorGUILayout.PropertyField(serializedObj.FindProperty("addHelpFrameToCreatedScreens")); EditorGUILayout.PropertyField(serializedObj.FindProperty("helpFramePrefab")); EditorGUILayout.PropertyField(serializedObj.FindProperty("screenSeparation")); SerializedProperty mask = serializedObj.FindProperty("systemLayer"); mask.intValue = EditorGUILayout.LayerField("System Layer", mask.intValue); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } SerializedProperty list = serializedObj.FindProperty("allScreenControllers"); int startSize = (uiManager.allScreenControllers != null ? uiManager.allScreenControllers.Count : 0); EditorGUILayout.PropertyField(list, new GUIContent("All Screen Controllers[" + startSize + "]")); if (list.isExpanded) { bool added = GUILayout.Button("+", EditorStyles.miniButton); if (added) { //list.InsertArrayElementAtIndex(list.arraySize); uiManager.CreateNewEmptyControllerAlone(); } else { //EditorGUILayout.SelectableLabel("Size "+uiManager.allScreenControllers.Count); if (!eliminated) { for (int i = 0; i < list.arraySize; i++) { SerializedProperty element = list.GetArrayElementAtIndex(i); string elementId = element.FindPropertyRelative("uiUniqueId").stringValue; EditorGUILayout.BeginHorizontal(); element.isExpanded = EditorGUILayout.Foldout(element.isExpanded, elementId); if (GUILayout.Button("-", EditorStyles.miniButton, GUILayout.MaxWidth(30))) { uiManager.RemoveUIScreenManagerController(elementId, false); break; } EditorGUILayout.EndHorizontal(); if (element.isExpanded) { EditorGUILayout.PropertyField(element); EditorGUIHelper.LineSeparator(); } EditorGUIHelper.LineSeparator(); } } } } if (serializedObject != null) { // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. serializedObject.ApplyModifiedProperties(); } } }
public override void OnInspectorGUI() { GUI.enabled = false; script = EditorGUILayout.ObjectField("Script:", script, typeof(MonoScript), false) as MonoScript; GUI.enabled = true; if (uiPopUpsManager != null && serializedObj != null) { // Update the serializedProperty - always do this in the beginning of OnInspectorGUI. serializedObj.Update(); if (!Application.isPlaying) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Spawn All Pop Ups")) { SpawnAllPopUps(); } if (GUILayout.Button("Despawn All Pop Ups")) { DespawnAllPopUps(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Spawn All Backgrounds")) { SpawnAllPopUpBackgrounds(); } if (GUILayout.Button("Despawn All Backgrounds")) { DespawnAllBackgrounds(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Create new Pop Up")) { CreateNewScreenPopUp(); } if (GUILayout.Button("Create new Background")) { CreateNewScreenPopUpBackground(); } GUILayout.EndHorizontal(); if (GUILayout.Button("Create Controller from Selected Pop Up(Lock!)")) { CreatePopUpControllersFromSelected(); } if (GUILayout.Button("Create Controller from Selected Background(Lock!)")) { CreatePopUpBkgControllersFromSelected(); } GUILayout.BeginHorizontal(); if (GUILayout.Button("Update Pop Up Ids")) { UpdatePopUpIds(); } if (GUILayout.Button("Update Background Ids")) { UpdatePopUpBkgIds(); } GUILayout.EndHorizontal(); if (GUILayout.Button("Update All References")) { UpdatePrefabs(); } } GUILayout.BeginHorizontal(); if (GUILayout.Button("Enable All")) { uiPopUpsManager.SwitchAllPopUps(true); } if (GUILayout.Button("Disable All")) { uiPopUpsManager.SwitchAllPopUps(false); } GUILayout.EndHorizontal(); if (GUILayout.Button("Recalculate Positions")) { uiPopUpsManager.ResetAllPositions(); } bool eliminated = false; if (!Application.isPlaying) { if (GUILayout.Button("Reset")) { ResetManager(); eliminated = true; } } EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(serializedObj.FindProperty("autoInitialize")); EditorGUILayout.PropertyField(serializedObj.FindProperty("dontDestroyOnLoad")); EditorGUILayout.PropertyField(serializedObj.FindProperty("justDisableOnPopUpDeactivation")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerMode")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerScreenMatchMode")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasMatchModeRange")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerPixelsPerUnit")); EditorGUILayout.PropertyField(serializedObj.FindProperty("canvasScalerReferenceResolution")); EditorGUILayout.PropertyField(serializedObj.FindProperty("popupsPositionNumberOfColumns")); EditorGUILayout.PropertyField(serializedObj.FindProperty("addHelpFrameToCreatedPopUps")); EditorGUILayout.PropertyField(serializedObj.FindProperty("popUpHelpFramePrefab")); EditorGUILayout.PropertyField(serializedObj.FindProperty("popUpBkgHelpFramePrefab")); EditorGUILayout.PropertyField(serializedObj.FindProperty("screenSeparation")); EditorGUILayout.PropertyField(serializedObj.FindProperty("disponibilityProvider")); SerializedProperty prohibitedList = serializedObj.FindProperty("screenProhibitedForPopUps"); EditorGUILayout.PropertyField(prohibitedList, true); SerializedProperty mask = serializedObj.FindProperty("systemLayer"); mask.intValue = EditorGUILayout.LayerField("System Layer", mask.intValue); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } SerializedProperty list = serializedObj.FindProperty("allPopUpControllers"); EditorGUILayout.PropertyField(list); bool added = false; if (list.isExpanded) { if (GUILayout.Button("+")) { //list.InsertArrayElementAtIndex(list.arraySize); uiPopUpsManager.CreateNewEmptyPopUpControllerAlone(); added = true; } else { //EditorGUILayout.SelectableLabel("Size "+list.FindPropertyRelative("Array.size").intValue); if (!eliminated) { for (int i = 0; i < list.arraySize; i++) { SerializedProperty element = list.GetArrayElementAtIndex(i); string elementId = element.FindPropertyRelative("uiUniqueId").stringValue; EditorGUILayout.BeginHorizontal(); element.isExpanded = EditorGUILayout.Foldout(element.isExpanded, elementId); if (GUILayout.Button("-", EditorStyles.miniButton, GUILayout.MaxWidth(30))) { uiPopUpsManager.RemoveUIPopUpScreenManagerController(elementId, false); break; } EditorGUILayout.EndHorizontal(); if (element.isExpanded) { EditorGUILayout.PropertyField(element); EditorGUIHelper.LineSeparator(); } EditorGUIHelper.LineSeparator(); } } } } if (!added) { SerializedProperty bkgList = serializedObj.FindProperty("allPopUpBackgroundsControllers"); EditorGUILayout.PropertyField(bkgList); if (bkgList.isExpanded) { if (GUILayout.Button("+")) { //bkgList.InsertArrayElementAtIndex(bkgList.arraySize); uiPopUpsManager.CreateNewEmptyPopUpBackgroundControllerAlone(); } else { //EditorGUILayout.SelectableLabel("Size "+list.FindPropertyRelative("Array.size").intValue); if (!eliminated) { for (int i = 0; i < bkgList.arraySize; i++) { SerializedProperty element = bkgList.GetArrayElementAtIndex(i); string elementId = element.FindPropertyRelative("uiUniqueId").stringValue; EditorGUILayout.BeginHorizontal(); element.isExpanded = EditorGUILayout.Foldout(element.isExpanded, elementId); if (GUILayout.Button("-", EditorStyles.miniButton, GUILayout.MaxWidth(30))) { uiPopUpsManager.RemoveUIPopUpBkgScreenManagerController(elementId, false); break; } EditorGUILayout.EndHorizontal(); if (element.isExpanded) { EditorGUILayout.PropertyField(element); EditorGUIHelper.LineSeparator(); } EditorGUIHelper.LineSeparator(); } } } } } if (serializedObject != null) { // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI. serializedObject.ApplyModifiedProperties(); } } }