| 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) | 
|             { | 
|                 bool change = false; | 
|                 if (item.text == "0")  | 
|                 {  | 
|                     item.text = ""; | 
|                     change = true; | 
|                 } | 
|                       | 
|                 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(); | 
|             } | 
|         }; | 
|     } | 
|      | 
|   | 
|    | 
| } |