Example #1
0
        /**
         * Shows the GUI.
         */
        public void ShowGUI()
        {
            string sceneName = MultiSceneChecker.EditActiveScene();

            if (sceneName != "")
            {
                EditorGUILayout.LabelField("Editing scene: '" + sceneName + "'", CustomStyles.subHeader);
                EditorGUILayout.Space();
            }

            EditorGUILayout.Space();
            GUILayout.BeginHorizontal();

            string label = (vars.Count > 0) ? ("Global (" + vars.Count + ")") : "Global";

            if (GUILayout.Toggle(showGlobalTab, label, "toolbarbutton"))
            {
                SetTab(0);
            }

            label = (KickStarter.localVariables != null && KickStarter.localVariables.localVars.Count > 0) ? ("Local (" + KickStarter.localVariables.localVars.Count + ")") : "Local";
            if (GUILayout.Toggle(showLocalTab, label, "toolbarbutton"))
            {
                SetTab(1);
            }

            GUILayout.EndHorizontal();
            EditorGUILayout.Space();

            EditorGUILayout.BeginVertical(CustomStyles.thinBox);
            showSettings = CustomGUILayout.ToggleHeader(showSettings, "Editor settings");
            if (showSettings)
            {
                updateRuntime = CustomGUILayout.Toggle("Show realtime values?", updateRuntime, "AC.KickStarter.variablesManager.updateRuntime");
                filter        = EditorGUILayout.TextField("Filter by name:", filter);
            }
            EditorGUILayout.EndVertical();

            EditorGUILayout.Space();

            if (showGlobalTab)
            {
                varPresets = ShowPresets(varPresets, vars, VariableLocation.Global);

                if (Application.isPlaying && updateRuntime && KickStarter.runtimeVariables != null)
                {
                    ShowVarList(KickStarter.runtimeVariables.globalVars, VariableLocation.Global, false);
                }
                else
                {
                    ShowVarList(vars, VariableLocation.Global, true);

                    foreach (VarPreset varPreset in varPresets)
                    {
                        varPreset.UpdateCollection(vars);
                    }
                }
            }
            else if (showLocalTab)
            {
                if (KickStarter.localVariables != null)
                {
                    KickStarter.localVariables.varPresets = ShowPresets(KickStarter.localVariables.varPresets, KickStarter.localVariables.localVars, VariableLocation.Local);

                    if (Application.isPlaying && updateRuntime)
                    {
                        ShowVarList(KickStarter.localVariables.localVars, VariableLocation.Local, false);
                    }
                    else
                    {
                        ShowVarList(KickStarter.localVariables.localVars, VariableLocation.Local, true);
                    }
                }
                else
                {
                    EditorGUILayout.LabelField("Local variables", CustomStyles.subHeader);
                    EditorGUILayout.HelpBox("A GameEngine prefab must be present in the scene before Local variables can be defined", MessageType.Info);
                }
            }

            EditorGUILayout.Space();
            if (selectedVar != null && (!Application.isPlaying || !updateRuntime))
            {
                int i = selectedVar.id;
                if (vars.Contains(selectedVar))
                {
                    ShowVarGUI(VariableLocation.Global, varPresets, "AC.GlobalVariables.GetVariable (" + i + ")");
                }
                else if (KickStarter.localVariables != null && KickStarter.localVariables.localVars.Contains(selectedVar))
                {
                    ShowVarGUI(VariableLocation.Local, KickStarter.localVariables.varPresets, "AC.LocalVariables.GetVariable (" + i + ")");
                }
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(this);

                if (KickStarter.localVariables != null)
                {
                    UnityVersionHandler.CustomSetDirty(KickStarter.localVariables);
                }
            }
        }
Example #2
0
        /**
         * Shows the GUI.
         */
        public void ShowGUI()
        {
            string sceneName = MultiSceneChecker.EditActiveScene();

            if (sceneName != "")
            {
                EditorGUILayout.LabelField("Editing scene: '" + sceneName + "'", EditorStyles.boldLabel);
                EditorGUILayout.Space();
            }

            if (icon == null)
            {
                icon = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/AdventureCreator/Graphics/Textures/inspector-use.png", typeof(Texture2D));
            }

            EditorGUILayout.Space();
            GUILayout.BeginHorizontal();
            if (GUILayout.Toggle(showGlobal, "Global", "toolbarbutton"))
            {
                SetTab(0);
            }
            if (GUILayout.Toggle(showLocal, "Local", "toolbarbutton"))
            {
                SetTab(1);
            }
            GUILayout.EndHorizontal();
            EditorGUILayout.Space();

            updateRuntime = EditorGUILayout.Toggle("Show realtime values?", updateRuntime);
            filter        = EditorGUILayout.TextField("Filter by name:", filter);
            EditorGUILayout.Space();

            if (showGlobal)
            {
                varPresets = ShowPresets(varPresets, vars, VariableLocation.Global);

                if (Application.isPlaying && updateRuntime && KickStarter.runtimeVariables != null)
                {
                    ShowVarList(KickStarter.runtimeVariables.globalVars, VariableLocation.Global, false);
                }
                else
                {
                    ShowVarList(vars, VariableLocation.Global, true);

                    foreach (VarPreset varPreset in varPresets)
                    {
                        varPreset.UpdateCollection(vars);
                    }
                }
            }
            else if (showLocal)
            {
                if (KickStarter.localVariables != null)
                {
                    KickStarter.localVariables.varPresets = ShowPresets(KickStarter.localVariables.varPresets, KickStarter.localVariables.localVars, VariableLocation.Local);

                    if (Application.isPlaying && updateRuntime)
                    {
                        ShowVarList(KickStarter.localVariables.localVars, VariableLocation.Local, false);
                    }
                    else
                    {
                        ShowVarList(KickStarter.localVariables.localVars, VariableLocation.Local, true);
                    }
                }
                else
                {
                    EditorGUILayout.LabelField("Local variables", EditorStyles.boldLabel);
                    EditorGUILayout.HelpBox("A GameEngine prefab must be present in the scene before Local variables can be defined", MessageType.Info);
                }
            }

            EditorGUILayout.Space();
            if (selectedVar != null && (!Application.isPlaying || !updateRuntime))
            {
                if (vars.Contains(selectedVar))
                {
                    ShowVarGUI(VariableLocation.Global, varPresets);
                }
                else if (KickStarter.localVariables != null && KickStarter.localVariables.localVars.Contains(selectedVar))
                {
                    ShowVarGUI(VariableLocation.Local, KickStarter.localVariables.varPresets);
                }
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(this);

                if (KickStarter.localVariables != null)
                {
                    EditorUtility.SetDirty(KickStarter.localVariables);
                }
            }
        }