コード例 #1
0
        public static void SearchForFileInAllScenes(Object asset, bool clearPreviousResults = false)
        {
            var window = OpenWindow();

            window.context = asset;

            if (clearPreviousResults)
            {
                window.results.Clear();
            }

            List <Object> sceneObjects = new List <Object>();

            ReferenceSearchUtility.FindAssetReferencesInBuildScenes(asset, sceneObjects);
            //Result should be a list of GameObjects
            //Sort them by scene
            sceneObjects.Sort((a, b) =>
            {
                var gameObjectA = a is Component ? (( Component )a).gameObject : ( GameObject )a;
                var gameObjectB = b is Component ? (( Component )b).gameObject : ( GameObject )b;

                var sceneA = gameObjectA.scene;
                var sceneB = gameObjectB.scene;

                return(string.Compare(sceneA.name, sceneB.name, System.StringComparison.CurrentCulture));
            });
            window.results.AddRange(sceneObjects);
        }
コード例 #2
0
        private void Search(Func <FileInfo, bool> searchAction)
        {
            var foundFiles = new List <string>();

            ReferenceSearchUtility.ExecuteAssetSearchAtPath(settings.path, ".asset", (file) =>
            {
                if (searchAction(file))
                {
                    foundFiles.Add(GetProjectRelativePath(file.FullName));
                }
            });

            //Get Assets for found files
            var assets = new List <UnityEngine.Object>();

            for (int i = 0; i < foundFiles.Count; i++)
            {
                var path = foundFiles[i];
                EditorUtility.DisplayProgressBar("Fetching Asset References", path, i / (float)foundFiles.Count);
                assets.Add(AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(path));
            }

            EditorUtility.ClearProgressBar();

            SearchResultWindow.SetFiles(assets, assetFile);
        }
コード例 #3
0
        public static void SearchForFile()
        {
            var window = OpenWindow();

            window.context = Selection.activeObject;
            window.results.Clear();
            ReferenceSearchUtility.FindAssetReferenceInOpenScenes(Selection.activeObject, window.results);
        }
コード例 #4
0
        public static void Find(Object asset)
        {
            var window = OpenWindow();

            window.context = asset;
            window.results.Clear();
            ReferenceSearchUtility.FindAssetReferenceInOpenScenes(asset, window.results);
        }
コード例 #5
0
        public static void MonobehaviourSearchForReferencesInOpenScenes(MenuCommand command)
        {
            var window = OpenWindow();

            //Result should be a list of components referencing the given object
            window.context = command.context;
            window.results.Clear();
            ReferenceSearchUtility.FindMonoBehaviourReferencesInScene(command.context as MonoBehaviour, window.results);
        }
コード例 #6
0
        public static void SearchForGameObject()
        {
            var window = OpenWindow();

            //Result should be a list of components referencing the given object
            window.context = Selection.activeObject;
            window.results.Clear();
            ReferenceSearchUtility.FindGameObjectReferencesInOpenScene(Selection.activeObject as GameObject, window.results);
        }
コード例 #7
0
        private void OpenInPreviewSceneAndSearch(object prefab)
        {
            var path = AssetDatabase.GetAssetPath((Object)prefab);

            PrefabUtility.LoadPrefabContents(path);
            ReferenceSearchUtility.FindAssetReferenceInOpenScenes(context, results);
            scrollPosition = new Vector2(0, float.MaxValue);
            Repaint();
        }