美文网首页
Unity 便捷小工具之批量更改UGUI Font(字体)

Unity 便捷小工具之批量更改UGUI Font(字体)

作者: su9257_海澜 | 来源:发表于2018-04-12 14:08 被阅读906次

    在项目开发过程中可能会遇到更改字体的需求,如果手动逐一更改实在是太麻烦,所以我们需要自动化,一键能解决的问题绝不点击两次

    效果过下

    源码如下

    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);
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Unity 便捷小工具之批量更改UGUI Font(字体)

          本文链接:https://www.haomeiwen.com/subject/zubxkftx.html