Exemplo n.º 1
0
        void FillRoutes(List <string> names, List <string> routes, string url, bool recursive)
        {
            var matches = SimpleUI.WhatUsesComponent(url, GetAllAssetsWithOpenUrl());

            Label($"References to {url}");

            names  = new List <string>();
            routes = new List <string>();

            // references from code
            foreach (var occurence in WhichScriptReferencesConcreteUrl(url))
            {
                names.Add($"<b>Code</b> {SimpleUI.GetTrimmedPath(occurence.ScriptName)}");
                routes.Add(occurence.ScriptName);
            }

            // references from assets
            names.AddRange(matches.Select(m => $"<b>{SimpleUI.GetPrettyAssetType(m.PrefabAssetPath)}</b> " + SimpleUI.GetTrimmedPath(m.PrefabAssetPath)));
            routes.AddRange(matches.Select(m => m.PrefabAssetPath));

            removingUrlObstacles += names.Count;

            // navigate to one of these assets
            var selected = GUILayout.SelectionGrid(-1, names.ToArray(), 1);

            if (selected != -1)
            {
                GUILayout.EndScrollView();
                isEndedRemoveUrlScrollView = true;

                OpenPrefabByAssetPath(routes[selected]);
            }

            if (!recursive)
            {
                return;
            }

            foreach (var r in GetSubUrls(url, false))
            {
                FillRoutes(names, routes, r.Url, recursive);
            }
        }