using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using UnityEngine.UI; using UnityEditor.VersionControl; using System.IO; using DG.Tweening.Plugins.Core.PathCore; public static class ChangeTextFont { private static string[] MyFolders = new string[] { //"Assets/ztest", //"Assets/ManagedResources/Prefabs/UI", //"Assets/ManagedResources/UpdatePanel", "Assets/ManagedResources/Prefabs/Effect", "Assets/ManagedResources/Prefabs/Map", }; [MenuItem("MyTools/ChangeScriptComponents")] public static void ChangeScriptComponents() { Font a = AssetDatabase.LoadAssetAtPath("Assets/ManagedResources/Fonts/HY-Sayeez/HY-Sayeez.otf"); if (a != null) { Debug.Log(a.name); } string[] guids = AssetDatabase.FindAssets("t:Prefab", MyFolders); for (int i = 0; i < guids.Length; ++i) { string path = AssetDatabase.GUIDToAssetPath(guids[i]); GameObject prefab = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject; var srcA = prefab.GetComponentsInChildren(); if (srcA != null && srcA.Length > 0) { foreach (var item in srcA) { item.font = a; } PrefabUtility.SavePrefabAsset(prefab); } } AssetDatabase.SaveAssets(); } [MenuItem("MyTools/ChangeTextFontSize")] public static void ChangeTextFontSize() { Font a = AssetDatabase.LoadAssetAtPath("Assets/ManagedResources/Fonts/HY-Sayeez/HY-Sayeez.otf"); if (a != null) { Debug.Log(a.name); } string[] guids = AssetDatabase.FindAssets("t:Prefab", MyFolders); for (int i = 0; i < guids.Length; ++i) { string path = AssetDatabase.GUIDToAssetPath(guids[i]); GameObject prefab = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject; var srcA = prefab.GetComponentsInChildren(); if (srcA != null && srcA.Length > 0) { foreach (var item in srcA) { if (item.fontSize > 50) { item.fontSize = (int)(item.fontSize * 0.9f); } } PrefabUtility.SavePrefabAsset(prefab); } } AssetDatabase.SaveAssets(); } [MenuItem("MyTools/ChangeAudioName")] public static void ChangeAudioName() { DirectoryInfo di = new DirectoryInfo("E:\\MiuoWorkSpace\\ZMiWorkSpace\\miduoxiyou_yuenan3\\Assets\\ztest\\Voice ENG final 26.2.2025\\Voice ENG final 26.2.2025"); var files = di.GetFiles(); foreach (var item in files) { if (item.Extension == ".wav") { var _name = item.Name.Replace(item.Extension, "") + "en"; var _pat2 = item.FullName.Replace("E:\\MiuoWorkSpace\\ZMiWorkSpace\\miduoxiyou_yuenan3\\", ""); AssetDatabase.RenameAsset(_pat2, _name); } } AssetDatabase.SaveAssets(); } [MenuItem("MyTools/ChangeTextSpacing")] public static void ChangeTextSpacing() { string[] guids = AssetDatabase.FindAssets("t:Prefab", MyFolders); for (int i = 0; i < guids.Length; ++i) { string path = AssetDatabase.GUIDToAssetPath(guids[i]); GameObject prefab = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject; var srcA = prefab.GetComponentsInChildren(); if (srcA != null && srcA.Length > 0) { foreach (var item in srcA) { if (item._textSpacing < -3) { item._textSpacing = -3; } } PrefabUtility.SavePrefabAsset(prefab); } } AssetDatabase.SaveAssets(); } } public class BatchChangeShader : EditorWindow { private string _folderPath = "Assets/ztest"; // 指定材质球所在的文件夹路径 private string _newShaderName = "Particles/Standard Surface"; // 新Shader的名称 [MenuItem("MyTools/Batch Change Shader")] private static void ShowWindow() { GetWindow(); } private void OnGUI() { _folderPath = EditorGUILayout.TextField("Folder Path", _folderPath); _newShaderName = EditorGUILayout.TextField("New Shader Name", _newShaderName); if (GUILayout.Button("Change Shader")) { ChangeShadersInFolder(_folderPath, _newShaderName); } } private void ChangeShadersInFolder(string folderPath, string newShaderName) { string[] guids = AssetDatabase.FindAssets("t:Material", new[] { folderPath }); Shader newShader = Shader.Find(newShaderName); if (newShader == null) { Debug.LogError("Shader not found:" + newShaderName); return; } foreach (string guid in guids) { string assetPath = AssetDatabase.GUIDToAssetPath(guid); Material material = AssetDatabase.LoadAssetAtPath(assetPath); if (material != null && material.shader.name == "Particles/Standard Surface") { Debug.LogError(material.name); //material.shader = newShader; //EditorUtility.SetDirty(material); } } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }