private static void ProcessAssetTargets(List <AssetInfo> targetAssets, ProcessAssetCallback callback, Phase phase, string progressAssetLabel) { var targetsCount = targetAssets.Count; var updateStep = Math.Max(targetsCount / MaintainerSettings.UpdateProgressStep, 1); for (var i = 0; i < targetsCount; i++) { var targetAsset = targetAssets[i]; var path = targetAsset.Path; var assetName = Path.GetFileNameWithoutExtension(path); if (string.IsNullOrEmpty(path) || !File.Exists(path)) { continue; } if (i % updateStep == 0 || phase == Phase.Scenes) { if (IssuesFinder.ShowProgressBar((int)phase, TotalPhases, i, targetsCount, progressAssetLabel + ": " + assetName)) { IssuesFinder.operationCanceled = true; break; } } callback.Invoke(targetAsset, assetName, i, targetsCount); if (IssuesFinder.operationCanceled) { break; } } }
private static bool OnPrefabGameObjectTraverse(ObjectTraverseInfo objectInfo) { #if !UNITY_2020_1_OR_NEWER if (currentObjectIndex % ObjectTraverseUpdateStep == 0) #endif { if (IssuesFinder.ShowProgressBar(2, 3, itemIndex, totalItems, string.Format("Processing prefab: {0}", currentAssetName))) { return(false); } } currentObjectIndex++; bool skipTree; if (IssuesDetector.StartGameObject(objectInfo.current, objectInfo.inPrefabInstance, out skipTree)) { CSTraverseTools.TraverseGameObjectComponents(objectInfo, OnComponentTraverse); IssuesDetector.EndGameObject(objectInfo.current); } objectInfo.skipCurrentTree = skipTree; return(true); }
private static bool OnGameObjectTraverse(ObjectTraverseInfo objectInfo) { if (currentObjectIndex % ObjectTraverseUpdateStep == 0) { if (IssuesFinder.ShowProgressBar(1, 3, itemIndex, totalItems, string.Format("Processing scene: {0} root {1}/{2}", currentAssetName, objectInfo.rootIndex + 1, objectInfo.TotalRoots))) { return(false); } } currentObjectIndex++; bool skipTree; if (IssuesDetector.StartGameObject(objectInfo.current, objectInfo.inPrefabInstance, out skipTree)) { CSTraverseTools.TraverseGameObjectComponents(objectInfo, OnComponentTraverse); IssuesDetector.EndGameObject(objectInfo.current); } objectInfo.skipCurrentTree = skipTree; return(true); }