合肥建站软件,小工具 wordpress,android开发app,什么网站做调查能赚钱想要批量化替换项目预制体资源中Text组件引用的Font字体文件#xff0c;可以采用以下步骤。
1、在项目的Editor文件中#xff0c;新建一个名为FontToolEditor的C#脚本文件#xff0c;然后把以下代码复制粘贴到新建的FontToolEditor的C#脚本文件中。
using System.Collect…想要批量化替换项目预制体资源中Text组件引用的Font字体文件可以采用以下步骤。
1、在项目的Editor文件中新建一个名为FontToolEditor的C#脚本文件然后把以下代码复制粘贴到新建的FontToolEditor的C#脚本文件中。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System.Globalization;public class FontToolEditor : EditorWindow
{private const string MENU_MAIN_WINDOW Tools/Font替换;private ListFont fontList new ListFont() { null };public Font toChange;static Font toChangeFont;public string path Assets/;static string path1;public int num 0;[MenuItem(MENU_MAIN_WINDOW)]public static void Open(){EditorWindow.GetWindow(typeof(FontToolEditor), true);}void OnGUI(){GUILayout.Space(5);GUILayout.Label(选择老字体, GUILayout.Width(100f));num EditorGUILayout.IntField(字体个数, num);AddMonsScriptList();GUILayout.Space(20);toChange (Font)EditorGUILayout.ObjectField(选择更换新字体, toChange, typeof(Font), true, GUILayout.MinWidth(100));toChangeFont toChange;GUILayout.Space(20);GUILayout.Label(路径, GUILayout.Width(50f));GUILayout.BeginHorizontal();{if (GUILayout.Button(浏览)){path EditorUtility.OpenFolderPanel(窗口标题, Application.streamingAssetsPath, );int index path.IndexOf(Assets);path path.Substring(index, path.Length - index) /;}}GUILayout.EndHorizontal();path1 path;GUILayout.TextField(path);if (GUILayout.Button(确认更换)){Init();}}private void AddMonsScriptList(){int scriptListCount fontList.Count - 1;for (int i 0; i num; i){if (scriptListCount i){//给脚本添加一个空值,为了界面好看,也为了下面缓存脚本fontList.Add(null);}fontList[i] (Font)EditorGUILayout.ObjectField(fontList[i], typeof(Font), true);}}private void Init(){ListGameObject prefabs new ListGameObject();var resourcesPath path1;var absolutePaths System.IO.Directory.GetFiles(resourcesPath, *.prefab, System.IO.SearchOption.AllDirectories);for (int i 0; i absolutePaths.Length; i){EditorUtility.DisplayProgressBar(字体转换中..., 字体转换中..., (float)i / absolutePaths.Length);string path absolutePaths[i].Replace(\\, /);GameObject prefab AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject;//替换fontText[] labels prefab.GetComponentsInChildrenText(true);for (int q 0; q labels.Length; q){if (labels[q].font){for (int w 0; w fontList.Count; w){if (fontList[w].name labels[q].font.name){int fontSize labels[q].fontSize;var fonStyle labels[q].fontStyle;labels[q].font toChangeFont;labels[q].fontSize fontSize;labels[q].fontStyle fonStyle;EditorUtility.SetDirty(labels[q]);}}}}}AssetDatabase.SaveAssets();AssetDatabase.Refresh();EditorUtility.ClearProgressBar();}
}2、保存FontToolEditor脚本文件中代码回到Unity中点击Unity主界面左上角中Tools然后再点击Font替换选项。 3、选择好老字体也就是需要被替换掉的字体再然后需要选择好需要更换的新字体再然后选择替换路径(也就是这个选择路径下的预支体才会进行字体替换)最后点击确认更换就可以。