/** * 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); } } }
/** * 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); } } }