using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using System.IO; using UnityEngine.UI; using vnxbqy.UI; using EnhancedUI.EnhancedScroller; public class CheckScrollRect : EditorWindow { private static string topFilePath=Application.dataPath + "/ResourcesOut/UI"; [MenuItem("策划工具/检查ScrollRec", false)] private static void Export() { string[] filepaths1 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories); topFilePath = Application.dataPath + "/ResourcesOut/BuiltIn"; string[] filepaths2 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories); string[] filepaths = new string[filepaths1.Length + filepaths2.Length]; filepaths1.CopyTo(filepaths, 0); filepaths2.CopyTo(filepaths, filepaths1.Length); Debug.LogFormat("检查预制体总数:{0}", filepaths.Length); int startIndex = 0; EditorApplication.update = delegate () { string file = filepaths[startIndex]; file = file.Substring(file.IndexOf("Assets")); bool isCancel = EditorUtility.DisplayCancelableProgressBar("预制体-"+filepaths.Length, file, (float)startIndex / (float)filepaths.Length); GameObject _prefab = AssetDatabase.LoadAssetAtPath(file); ScrollRect[] transArr14 = _prefab.GetComponentsInChildren(true); foreach (ScrollRect item in transArr14) { var cr = item.GetComponent(); var sc = item.GetComponent(); var ec = item.GetComponent(); if (cr == null && sc == null && ec == null) { Debug.LogError("需处理" + file); } } startIndex++; if (isCancel || startIndex >= filepaths.Length) { EditorUtility.ClearProgressBar(); EditorApplication.update = null; startIndex = 0; Debug.Log("完成检查"); } }; } }