void DrawScene(bool show, SimpleUISceneType asset) { //Debug.Log("DRAW SCENE " + asset.AssetPath); var scene = SceneManager.GetSceneByPath(asset.AssetPath); var sceneName = scene.name; var buildIndex = scene.buildIndex; if (show) { if (!scene.isLoaded) { EditorSceneManager.LoadScene(buildIndex, LoadSceneMode.Additive); SceneManager.LoadScene(buildIndex, LoadSceneMode.Additive); EditorSceneManager.SetActiveScene(scene); } } else { if (scene.isLoaded) { EditorSceneManager.UnloadScene(buildIndex); SceneManager.UnloadScene(buildIndex); //SceneManager.LoadScene(buildIndex, LoadSceneMode.Additive); } } }
public static void StaticUpdatePrefab(SimpleUISceneType prefab, int index) { var prefs = GetPrefabsFromFile(); prefs[index] = prefab; SavePrefabs(prefs); }
public void UpdatePrefab(SimpleUISceneType prefab, int index) { if (!hasChosenPrefab) { return; } prefabs[index] = prefab; SavePrefabs(prefabs); }
public void OpenPrefab(SimpleUISceneType p) { newPath = p.AssetPath; newUrl = p.Url; PossiblePrefab = null; isDraggedPrefabMode = false; isUrlEditingMode = false; isConcreteUrlChosen = true; LoadReferences(newUrl); OpenAsset(newPath); }
void RenderStatButtons(SimpleUISceneType pref) { Space(); Space(); if (pref.Usages > 0 && GUILayout.Button("Reset Counter")) { pref.Usages = 0; UpdatePrefab(pref); } var maxUsages = prefabs.Max(p => p.Usages); if (pref.Usages < maxUsages && GUILayout.Button("Prioritize")) { pref.Usages = maxUsages + 1; UpdatePrefab(pref); } }
//void UpdatePrefab(SimpleUISceneType pref) //{ // SimpleUI.UpdatePrefab(pref); //} void RenderRenameUrlButton(SimpleUISceneType prefab) { Space(); renameUrlRecursively = EditorGUILayout.ToggleLeft("Rename subroutes too", renameUrlRecursively); Space(); if (renameUrlRecursively) { EditorGUILayout.HelpBox("Renaming this url will lead to renaming these urls too...", MessageType.Warning); } else { EditorGUILayout.HelpBox("Will only rename THIS url", MessageType.Warning); } List <string> RenamingUrls = new List <string>(); List <string> RenamingCodeUrls = new List <string>(); RenamingUrls.Add(prefab.Url); if (renameUrlRecursively) { Space(); var subroutes = GetSubUrls(prefab.Url, true); foreach (var route in subroutes) { RenamingUrls.Add(route.Url); } // render foreach (var route in RenamingUrls) { BoldLabel(route); } } var phrase = renameUrlRecursively ? "Rename url & subUrls" : "Rename THIS url"; var matches = WhatUsesComponent(newUrl, GetAllAssetsWithOpenUrl()); var referencesFromCode = WhichScriptReferencesConcreteUrl(prefab.Url); // references from prefabs & scenes var names = matches.Select(m => $"<b>{SimpleUI.GetPrettyAssetType(m.PrefabAssetPath)}</b> " + SimpleUI.GetTrimmedPath(m.PrefabAssetPath)).ToList(); var routes = matches.Select(m => m.PrefabAssetPath).ToList(); // references from code foreach (var occurence in referencesFromCode) { names.Add($"<b>Code</b> {SimpleUI.GetTrimmedPath(occurence.ScriptName)}"); routes.Add(occurence.ScriptName); } Space(); if (Button(phrase)) { if (EditorUtility.DisplayDialog("Do you want to rename url " + prefab.Url, "This action will rename url and subUrls in X prefabs, Y scenes and Z script files.\n\nPRESS CANCEL IF YOU HAVE UNSAVED PREFAB OR SCENE OR CODE CHANGES", "Rename", "Cancel")) { Print("Rename starts now!"); var prevUrl = newUrl; var changedScripts = new List <string>(); // start from grandchilds first foreach (var url in RenamingUrls.OrderByDescending(u => u.Count(c => c.Equals('/')))) { Print("Rename URL " + url); var finalURL = url.Replace(newUrl, newEditingUrl); RenameUrl(url, newUrl, newEditingUrl, finalURL, changedScripts); Print("----------------"); } OpenPrefabByUrl(newEditingUrl); if (changedScripts.Any()) { OpenAsset(changedScripts.First()); } //newUrl = newEditingUrl; //newUrl = prevUrl.Replace(newUrl, newEditingUrl); } } //EditorUtility.DisplayProgressBar("Renaming url", "Info", UnityEngine.Random.Range(0, 1f)); }
// ------------------- Updates -------------------------- public void UpdatePrefab(SimpleUISceneType prefab) => UpdatePrefab(prefab, ChosenIndex);