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