private void OnGUI() { if (!ACInstaller.IsInstalled()) { ACInstaller.DoInstall(); } if (!references) { GetReferences(); } if (references) { GUILayout.Space(10); GUILayout.BeginHorizontal(); if (GUILayout.Toggle(showScene, "Scene", "toolbarbutton", tabWidth)) { SetTab(0); } if (GUILayout.Toggle(showSettings, "Settings", "toolbarbutton", tabWidth)) { SetTab(1); } if (GUILayout.Toggle(showActions, "Actions", "toolbarbutton", tabWidth)) { SetTab(2); } if (GUILayout.Toggle(showGVars, "Variables", "toolbarbutton", tabWidth)) { SetTab(3); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Toggle(showInvItems, "Inventory", "toolbarbutton", tabWidth)) { SetTab(4); } if (GUILayout.Toggle(showSpeech, "Speech", "toolbarbutton", tabWidth)) { SetTab(5); } if (GUILayout.Toggle(showCursor, "Cursor", "toolbarbutton", tabWidth)) { SetTab(6); } if (GUILayout.Toggle(showMenu, "Menu", "toolbarbutton", tabWidth)) { SetTab(7); } GUILayout.EndHorizontal(); GUILayout.Space(5); scroll = GUILayout.BeginScrollView(scroll); if (showScene) { GUILayout.Label("Scene manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.sceneManager = (SceneManager)EditorGUILayout.ObjectField("Asset file: ", references.sceneManager, typeof(SceneManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.sceneManager) { AskToCreate <SceneManager> ("SceneManager"); } else { if (references.sceneManager.name == "Demo_SceneManager" || references.sceneManager.name == "Demo2D_SceneManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.sceneManager.ShowGUI(); } } else if (showSettings) { GUILayout.Label("Settings manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.settingsManager = (SettingsManager)EditorGUILayout.ObjectField("Asset file: ", references.settingsManager, typeof(SettingsManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.settingsManager) { AskToCreate <SettingsManager> ("SettingsManager"); } else { if (references.settingsManager.name == "Demo_SettingsManager" || references.settingsManager.name == "Demo2D_SettingsManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.settingsManager.ShowGUI(); } } else if (showActions) { GUILayout.Label("Actions manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.actionsManager = (ActionsManager)EditorGUILayout.ObjectField("Asset file: ", references.actionsManager, typeof(ActionsManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.actionsManager) { AskToCreate <ActionsManager> ("ActionsManager"); } else { if (references.actionsManager.name == "Demo_ActionsManager" || references.actionsManager.name == "Demo2D_ActionsManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.actionsManager.ShowGUI(); } } else if (showGVars) { GUILayout.Label("Variables manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.variablesManager = (VariablesManager)EditorGUILayout.ObjectField("Asset file: ", references.variablesManager, typeof(VariablesManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.variablesManager) { AskToCreate <VariablesManager> ("VariablesManager"); } else { if (references.variablesManager.name == "Demo_VariablesManager" || references.variablesManager.name == "Demo2D_VariablesManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.variablesManager.ShowGUI(); } } else if (showInvItems) { GUILayout.Label("Inventory manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.inventoryManager = (InventoryManager)EditorGUILayout.ObjectField("Asset file: ", references.inventoryManager, typeof(InventoryManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.inventoryManager) { AskToCreate <InventoryManager> ("InventoryManager"); } else { if (references.inventoryManager.name == "Demo_InventoryManager" || references.inventoryManager.name == "Demo2D_InventoryManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.inventoryManager.ShowGUI(); } } else if (showSpeech) { GUILayout.Label("Speech manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.speechManager = (SpeechManager)EditorGUILayout.ObjectField("Asset file: ", references.speechManager, typeof(SpeechManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.speechManager) { AskToCreate <SpeechManager> ("SpeechManager"); } else { if (references.speechManager.name == "Demo_SpeechManager" || references.speechManager.name == "Demo2D_SpeechManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.speechManager.ShowGUI(); } } else if (showCursor) { GUILayout.Label("Cursor manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.cursorManager = (CursorManager)EditorGUILayout.ObjectField("Asset file: ", references.cursorManager, typeof(CursorManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.cursorManager) { AskToCreate <CursorManager> ("CursorManager"); } else { if (references.cursorManager.name == "Demo_CursorManager" || references.cursorManager.name == "Demo2D_CursorManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.cursorManager.ShowGUI(); } } else if (showMenu) { GUILayout.Label("Menu manager", CustomStyles.managerHeader); EditorGUI.BeginChangeCheck(); references.menuManager = (MenuManager)EditorGUILayout.ObjectField("Asset file: ", references.menuManager, typeof(MenuManager), false); if (EditorGUI.EndChangeCheck()) { KickStarter.ClearManagerCache(); } DrawManagerSpace(); if (!references.menuManager) { AskToCreate <MenuManager> ("MenuManager"); } else { if (references.menuManager.name == "Demo_MenuManager" || references.menuManager.name == "Demo2D_MenuManager") { EditorGUILayout.HelpBox("The Demo Managers are for demonstration purposes only. Modifying them to create your game may result in data loss upon upgrading - instead, use the New Game Wizard to create a new set of Managers.", MessageType.Warning); } references.menuManager.ShowGUI(); } } references.viewingMenuManager = showMenu; EditorGUILayout.Separator(); GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); GUILayout.Label("Adventure Creator - Version " + AdventureCreator.version, EditorStyles.miniLabel); GUILayout.EndScrollView(); } else { EditorStyles.label.wordWrap = true; GUILayout.Label("No 'References' asset found in the resources folder. Please click to create one.", EditorStyles.label); if (GUILayout.Button("Create 'References' file")) { references = CustomAssetUtility.CreateAsset <References> ("References", "AdventureCreator" + Path.DirectorySeparatorChar.ToString() + "Resources"); } } if (GUI.changed) { if (showActions) { RefreshActions(); } EditorUtility.SetDirty(this); EditorUtility.SetDirty(references); } }
/** * Assigns its various Manager asset files. */ public void AssignManagers() { if (AdvGame.GetReferences() != null) { int numAssigned = 0; if (sceneManager) { AdvGame.GetReferences().sceneManager = sceneManager; numAssigned++; } if (settingsManager) { AdvGame.GetReferences().settingsManager = settingsManager; numAssigned++; } if (actionsManager) { AdvGame.GetReferences().actionsManager = actionsManager; numAssigned++; } if (variablesManager) { AdvGame.GetReferences().variablesManager = variablesManager; numAssigned++; } if (inventoryManager) { AdvGame.GetReferences().inventoryManager = inventoryManager; numAssigned++; } if (speechManager) { AdvGame.GetReferences().speechManager = speechManager; numAssigned++; } if (cursorManager) { AdvGame.GetReferences().cursorManager = cursorManager; numAssigned++; } if (menuManager) { AdvGame.GetReferences().menuManager = menuManager; numAssigned++; } #if UNITY_EDITOR if (!Application.isPlaying) { KickStarter.ClearManagerCache(); } if (KickStarter.sceneManager) { KickStarter.sceneManager.GetPrefabsInScene(); } UnityVersionHandler.CustomSetDirty(AdvGame.GetReferences(), true); AssetDatabase.SaveAssets(); #endif if (this) { if (numAssigned == 0) { ACDebug.Log(this.name + " No Mangers assigned."); } else if (numAssigned == 1) { ACDebug.Log(this.name + " - (" + numAssigned.ToString() + ") Manager assigned."); } else { ACDebug.Log(this.name + " - (" + numAssigned.ToString() + ") Managers assigned."); } } } else { ACDebug.LogError("Can't assign managers - no References file found in Resources folder."); } }
/** * Assigns its various Manager asset files. */ public void AssignManagers() { if (AdvGame.GetReferences() != null) { int numAssigned = 0; if (sceneManager) { AdvGame.GetReferences().sceneManager = sceneManager; numAssigned++; } if (settingsManager) { AdvGame.GetReferences().settingsManager = settingsManager; numAssigned++; } if (actionsManager) { AdvGame.GetReferences().actionsManager = actionsManager; numAssigned++; } if (variablesManager) { AdvGame.GetReferences().variablesManager = variablesManager; numAssigned++; } if (inventoryManager) { AdvGame.GetReferences().inventoryManager = inventoryManager; numAssigned++; } if (speechManager) { AdvGame.GetReferences().speechManager = speechManager; numAssigned++; } if (cursorManager) { AdvGame.GetReferences().cursorManager = cursorManager; numAssigned++; } if (menuManager) { AdvGame.GetReferences().menuManager = menuManager; numAssigned++; } #if UNITY_EDITOR if (!Application.isPlaying) { KickStarter.ClearManagerCache(); } if (KickStarter.sceneManager) { KickStarter.sceneManager.GetPrefabsInScene(); } UnityVersionHandler.CustomSetDirty(AdvGame.GetReferences(), true); AssetDatabase.SaveAssets(); #endif if (this) { if (numAssigned == 0) { ACDebug.Log(this.name + " No Mangers assigned."); } else if (numAssigned == 1) { ACDebug.Log(this.name + " - (" + numAssigned.ToString() + ") Manager assigned.", this); } else { ACDebug.Log(this.name + " - (" + numAssigned.ToString() + ") Managers assigned.", this); } } } else { #if UNITY_EDITOR string intendedDirectory = Resource.MainFolderPathRelativeToAssets + System.IO.Path.DirectorySeparatorChar.ToString() + "Resources"; bool canProceed = EditorUtility.DisplayDialog("Error - missing References", "A 'References' file must be present in the directory '" + intendedDirectory + "'. Create one?", "OK", "Cancel"); if (!canProceed) { return; } CustomAssetUtility.CreateAsset <References> ("References", intendedDirectory); if (AdvGame.GetReferences() != null) { AssignManagers(); } #else ACDebug.LogError("Can't assign managers - no References file found in Resources folder."); #endif } }