Ejemplo n.º 1
0
    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();
            }
        }
    }
Ejemplo n.º 2
0
    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();
            }
        }
    }