Ejemplo n.º 1
0
        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;
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }