三国卡牌客户端基础资源仓库
hch
3 天以前 cdac25a8e4f91a4663bf5f80994538dd263b757c
Assets/Editor/Tool/ChangePrefabsFontSize.cs
@@ -23,12 +23,75 @@
        {
            Change();
        }
        if (GUILayout.Button("检测字体和自适应的关系"))
        {
            FindSmallRect();
        }
    }
    public static void FindSmallRect()
    {
        string topFilePath = Application.dataPath + "/ResourcesOut/UI";
        string[] filepaths1 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories);
        topFilePath = Application.dataPath + "/ResourcesOut/BuiltIn";
        string[] filepaths2 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories);
        topFilePath = Application.dataPath + "/ResourcesOut/UIComp";
        string[] filepaths3 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories);
        string[] filepaths = new string[filepaths1.Length + filepaths2.Length + filepaths3.Length];
        filepaths1.CopyTo(filepaths, 0);
        filepaths2.CopyTo(filepaths, filepaths1.Length);
        filepaths3.CopyTo(filepaths, filepaths1.Length + filepaths2.Length);
        Debug.LogFormat("预修改预制体字体总数:{0}", filepaths.Length);
        int startIndex = 0; //文件执行个数
        int a = 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<GameObject>(file);
            Text[] transArr14 = _prefab.GetComponentsInChildren<Text>(true);
            a += transArr14.Length;
            foreach (Text item in transArr14)
            {
                if (item.verticalOverflow == VerticalWrapMode.Overflow || item.horizontalOverflow == HorizontalWrapMode.Overflow)
                {
                    var target = item.GetComponent<ContentSizeFitter>();
                    if (target != null)
                    {
                        Debug.LogErrorFormat("存在overflwer和ContentSizeFitter 冲突的预制体 {0} - {1}", file, item.name);
                    }
                }
            }
            startIndex++;
            if (isCancel || startIndex >= filepaths.Length)
            {
                Debug.LogFormat("检测字体和自适应的关系--检索{0}个预制体, 字体总个数{1}", startIndex, a);
                EditorUtility.ClearProgressBar();
                EditorApplication.update = null;
                startIndex = 0;
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
            }
        };
    }
    public static void Change()
    {
        string topFilePath=Application.dataPath + "/ResourcesOut/UI";
        string topFilePath = Application.dataPath + "/ResourcesOut/UI";
        string[] filepaths1 = Directory.GetFiles(topFilePath, "*.prefab", SearchOption.AllDirectories);
@@ -47,10 +110,11 @@
        int a = 0;  // 总字体数
        int i = 0;  // 更换字体数
        EditorApplication.update = delegate () {
        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);
            bool isCancel = EditorUtility.DisplayCancelableProgressBar("预制体文字-" + filepaths.Length, file, (float)startIndex / (float)filepaths.Length);
            GameObject _prefab = AssetDatabase.LoadAssetAtPath<GameObject>(file);
            Text[] transArr14 = _prefab.GetComponentsInChildren<Text>(true);
@@ -67,15 +131,16 @@
            }
            if (change)
            {
            {
                EditorUtility.SetDirty(_prefab);
                Debug.LogFormat("界面 {0} 字体大小修改成功", file);
                i++;
            }
            startIndex++;
            if (isCancel || startIndex >= filepaths.Length) {
            if (isCancel || startIndex >= filepaths.Length)
            {
                Debug.LogFormat("字体批量修改成功--检索{0}个预制体, 字体总个数{1},修改{2}", startIndex, a, i);
                EditorUtility.ClearProgressBar();
                EditorApplication.update = null;