Unity☞一键换字体

喜夏-厌秋 提交于 2020-01-25 03:01:59

使用

一键换字体是一个外部脚本,导入项目后也不要挂载,选中场景中全部物体,按照下图所示替换字体即可.
在这里插入图片描述

脚本(源码,使用时直接创建如下脚本,放入项目中即可)

// ========================================================
// 脚 本 功 能:
// 作 者:CYC 
// 创建时间:2019/12/31 09:11:18
// 版 本:v 1.0
// ========================================================
using UnityEngine;
using System.Collections;
using UnityEditor;
using UnityEngine.UI;

public class ChangeFontWindow : EditorWindow
{
    [MenuItem("Tools/换字体")]
    public static void Open()
    {
        /*第一个参数窗口类型,决定窗口操作逻辑
         * 第二个参数确定是否为浮动窗口,选择false可有停靠效果
         * 第三个参数 显示窗口的标题
         * 第四个 目前不知道什么意思
         */
        EditorWindow.GetWindow(typeof(ChangeFontWindow), true);
    }

    //public Font toChange = new Font("Arial");
    public Font toChange;
    static Font toChangeFont;

    void OnGUI()
    {
        toChange = (Font)EditorGUILayout.ObjectField("选择需要更换的字体", toChange, typeof(Font), true, GUILayout.MinWidth(100));
        toChangeFont = toChange;
        if (GUILayout.Button("确认更换"))
        {
            Change();
        }
    }

    public static void Change()
    {
        Object[] Texts = Selection.GetFiltered(typeof(Text), SelectionMode.Deep);
        foreach (Object text in Texts)
        {
            if (text)
            {
                //如果是UGUI讲UILabel换成Text就可以  
                Text TempText = (Text)text;
                Undo.RecordObject(TempText, TempText.gameObject.name);
                TempText.font = toChangeFont;
                Debug.Log(text.name + ":" + TempText.text);
                EditorUtility.SetDirty(TempText);
            }
        }
    }
}

注意

因为插件有中文汉字,发布时可能报错,那就把这个脚本再删除发布

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!