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