miduo_client/Assets/ztest/Editor/ChangeTextFont.cs

164 lines
5.6 KiB
C#

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<Font>("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<Text>();
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<Font>("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<Text>();
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<TextSpacing>();
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<BatchChangeShader>();
}
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<Material>(assetPath);
if (material != null && material.shader.name == "Particles/Standard Surface")
{
Debug.LogError(material.name);
//material.shader = newShader;
//EditorUtility.SetDirty(material);
}
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}