Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        public static void StaticUpdatePrefab(SimpleUISceneType prefab, int index)
        {
            var prefs = GetPrefabsFromFile();

            prefs[index] = prefab;
            SavePrefabs(prefs);
        }
Esempio n. 3
0
        public void UpdatePrefab(SimpleUISceneType prefab, int index)
        {
            if (!hasChosenPrefab)
            {
                return;
            }

            prefabs[index] = prefab;
            SavePrefabs(prefabs);
        }
Esempio n. 4
0
        public void OpenPrefab(SimpleUISceneType p)
        {
            newPath = p.AssetPath;
            newUrl  = p.Url;

            PossiblePrefab      = null;
            isDraggedPrefabMode = false;
            isUrlEditingMode    = false;
            isConcreteUrlChosen = true;


            LoadReferences(newUrl);

            OpenAsset(newPath);
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        //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));
        }
Esempio n. 7
0
 // ------------------- Updates --------------------------
 public void UpdatePrefab(SimpleUISceneType prefab) => UpdatePrefab(prefab, ChosenIndex);