少年修仙传客户端基础资源
hch
2024-01-19 47f7782cb80d3ae5e776b9188f160bd7a17943c4
0312 调整字体大小
2个文件已添加
124 ■■■■■ 已修改文件
Assets/Editor/Tool/ChangePrefabsFontSize.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ChangePrefabsFontSize.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ChangePrefabsFontSize.cs
New file
@@ -0,0 +1,113 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using UnityEngine.UI;
using Snxxz.UI;
//根据项目当下情况调整,谨慎使用
public class ChangePrefabsFontSize : EditorWindow {
    [MenuItem("策划工具/更改字体大小(慎用)")]
    public static void Open()
    {
        EditorWindow.GetWindow(typeof(ChangePrefabsFontSize));
    }
    Font fromFont;
    static Font fromChangeFont;
    void OnGUI()
    {
        GUILayout.Label("字体");
        fromFont = (Font)EditorGUILayout.ObjectField(fromFont, typeof(Font), true, GUILayout.MinWidth(100f));
        fromChangeFont = fromFont;
        if (GUILayout.Button("更换字体大小"))
        {
            Change();
        }
    }
    public static void Change()
    {
        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);
        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; //文件执行个数
        int a = 0;  // 总字体数
        int i = 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.font == fromChangeFont)
                {
                    bool change = true;
                    if (item.rectTransform.rect.height <= 2)
                    {
                        change = false;
                    }
                    //else if (item.resizeTextForBestFit && item.resizeTextMaxSize > 24)
                    //{
                    //    item.fontSize = 24;
                    //    item.resizeTextMaxSize = 24;
                    //}
                    //else if (item.fontSize > 16 && item.fontSize <= 24)
                    //{
                    //    item.fontSize = item.fontSize - 1;
                    //}
                    else if (item.fontSize > 24)
                    {
                        item.fontSize = 24;
                    }
                    else
                    {
                        change = false;
                    }
                    if (change)
                    {
                        EditorUtility.SetDirty(_prefab);
                        Debug.LogFormat("界面 {0} 字体大小修改成功", file);
                        i++;
                    }
                }
            }
            startIndex++;
            if (isCancel || startIndex >= filepaths.Length) {
                Debug.LogFormat("字体批量修改成功--检索{0}个预制体, 字体总个数{1},修改{2}", startIndex, a, i);
                EditorUtility.ClearProgressBar();
                EditorApplication.update = null;
                startIndex = 0;
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
            }
        };
    }
}
Assets/Editor/Tool/ChangePrefabsFontSize.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9fab55616476536488b838e6247bf7ea
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: