// Quickly show the AssetUsageDetector window and initiate a search
        public static void ShowAndSearch(AssetUsageDetector.Parameters searchParameters)
        {
            if (searchParameters == null)
            {
                Debug.LogError("searchParameters can't be null!");
                return;
            }

            ShowAndSearchInternal(searchParameters.objectsToSearch, searchParameters);
        }
Ejemplo n.º 2
0
        // Quickly show the AssetUsageDetector window and initiate a search
        public static void ShowAndSearch(AssetUsageDetector.Parameters searchParameters)
        {
            if (searchParameters == null)
            {
                Debug.LogError("searchParameters can't be null!");
                return;
            }

            if (searchParameters.objectsToSearch.IsEmpty())
            {
                Debug.LogError("searchParameters.objectsToSearch can't be empty!");
                return;
            }

            if (!EditorApplication.isPlaying && !Utilities.AreScenesSaved())
            {
                if (visibleWindow == null || visibleWindow.currentPhase != Phase.Complete)
                {
                    Debug.LogError("Save open scenes first!");
                    return;
                }

                if (!visibleWindow.ReturnToSetupPhase(true))
                {
                    Debug.LogError("Need to reset the previous search first!");
                    return;
                }
            }

            Init();

            if (visibleWindow.objectsToSearch == null)
            {
                visibleWindow.objectsToSearch = new List <ObjectToSearch>();
            }
            else
            {
                visibleWindow.objectsToSearch.Clear();
            }

            foreach (Object obj in searchParameters.objectsToSearch)
            {
                visibleWindow.objectsToSearch.Add(new ObjectToSearch(obj));
            }

            // This enumerator includes sub-assets in the search
            searchParameters.objectsToSearch = new ObjectToSearchEnumerator(visibleWindow.objectsToSearch);

            visibleWindow.errorMessage = string.Empty;
            visibleWindow.currentPhase = Phase.Processing;
            visibleWindow.searchResult = visibleWindow.core.Run(searchParameters);
            visibleWindow.currentPhase = Phase.Complete;
        }
        // Quickly show the AssetUsageDetector window and initiate a search
        public static void ShowAndSearch(AssetUsageDetector.Parameters searchParameters)
        {
            if (searchParameters == null)
            {
                Debug.LogError("searchParameters can't be null!");
            }
            else if (searchParameters.objectsToSearch.IsEmpty())
            {
                Debug.LogError("searchParameters.objectsToSearch can't be empty!");
            }
            else if (!EditorApplication.isPlaying && !Utilities.AreScenesSaved())
            {
                Debug.LogError("Save open scenes first!");
            }
            else
            {
                Init();
                AssetUsageDetectorWindow window = GetWindow <AssetUsageDetectorWindow>();

                if (window.objectsToSearch == null)
                {
                    window.objectsToSearch = new List <ObjectToSearch>();
                }
                else
                {
                    window.objectsToSearch.Clear();
                }

                foreach (Object obj in searchParameters.objectsToSearch)
                {
                    window.objectsToSearch.Add(new ObjectToSearch(obj));
                }

                window.errorMessage = string.Empty;
                window.currentPhase = Phase.Processing;
                window.searchResult = window.core.Run(searchParameters);
                window.currentPhase = Phase.Complete;
            }
        }
        private static void ShowAndSearchInternal(IEnumerable <Object> searchObjects, AssetUsageDetector.Parameters searchParameters)
        {
            if (visibleWindow != null && !visibleWindow.ReturnToSetupPhase(true))
            {
                Debug.LogError("Need to reset the previous search first!");
                return;
            }

            Init();

            visibleWindow.objectsToSearch.Clear();
            if (searchObjects != null)
            {
                foreach (Object obj in searchObjects)
                {
                    visibleWindow.objectsToSearch.Add(new ObjectToSearch(obj));
                }
            }

            if (searchParameters != null)
            {
                visibleWindow.ParseSceneSearchMode(searchParameters.searchInScenes);
                visibleWindow.searchInAssetsFolder           = searchParameters.searchInAssetsFolder;
                visibleWindow.dontSearchInSourceAssets       = searchParameters.dontSearchInSourceAssets;
                visibleWindow.searchDepthLimit               = searchParameters.searchDepthLimit;
                visibleWindow.fieldModifiers                 = searchParameters.fieldModifiers;
                visibleWindow.propertyModifiers              = searchParameters.propertyModifiers;
                visibleWindow.searchNonSerializableVariables = searchParameters.searchNonSerializableVariables;
                visibleWindow.noAssetDatabaseChanges         = searchParameters.noAssetDatabaseChanges;
                visibleWindow.showProgressBar                = searchParameters.showProgressBar;

                visibleWindow.searchInAssetsSubset.Clear();
                if (searchParameters.searchInAssetsSubset != null)
                {
                    foreach (Object obj in searchParameters.searchInAssetsSubset)
                    {
                        visibleWindow.searchInAssetsSubset.Add(obj);
                    }
                }

                visibleWindow.excludedAssets.Clear();
                if (searchParameters.excludedAssetsFromSearch != null)
                {
                    foreach (Object obj in searchParameters.excludedAssetsFromSearch)
                    {
                        visibleWindow.excludedAssets.Add(obj);
                    }
                }

                visibleWindow.excludedScenes.Clear();
                if (searchParameters.excludedScenesFromSearch != null)
                {
                    foreach (Object obj in searchParameters.excludedScenesFromSearch)
                    {
                        visibleWindow.excludedScenes.Add(obj);
                    }
                }
            }

            visibleWindow.InitiateSearch();
        }