纳金网

标题: Unity3D 一键改变UI字体 [打印本页]

作者: may    时间: 2016-3-25 00:11
标题: Unity3D 一键改变UI字体

我们做项目的时候经常会遇到要换个字体的工作情况,比如美工同学觉着字体不好看或者要做其它语言版本什么的。遇到这种情况我们总不能一个标签一个标签的去找到它们把字体换了,累不累就不说了,万一漏了也是麻烦事。
作为一名高贵的游戏开发工程师,怎么能把时间经历都浪费在这些小事上,所以我们要时刻考虑到什么工作可以通过代码让电脑代替自己的工。
下面这个类是个编辑器工具类,都在代码里~
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;
  4. using UnityEngine.UI;

  5. public class ChangeFontWindow : EditorWindow
  6. {
  7.     [MenuItem("DuanTools/换字体")]
  8.     public static void Open()
  9.     {
  10.         EditorWindow.GetWindow(typeof(ChangeFontWindow));
  11.     }

  12.     public Font toChange;
  13.     static Font toChangeFont;

  14.     void OnGUI()
  15.     {
  16.         toChange = (Font)EditorGUILayout.ObjectField(toChange, typeof(Font), true, GUILayout.MinWidth(100f));
  17.         toChangeFont = toChange;
  18.         if (GUILayout.Button("变变变!"))
  19.         {
  20.             Change();
  21.         }
  22.     }

  23.     public static void Change()
  24.     {
  25.         //获取所有UILabel组件
  26.         //如果是UGUI讲UILabel换成Text就可以
  27.         Object[] labels = Selection.GetFiltered(typeof(UILabel), SelectionMode.Deep);
  28.         foreach (Object item in labels)
  29.         {
  30.             //如果是UGUI讲UILabel换成Text就可以
  31.             UILabel label = (UILabel)item;
  32.             label.trueTypeFont = toChangeFont;
  33.             //label.font = toChangeFont;(UGUI)
  34.             Debug.Log(item.name + ":" + label.text);
  35.         }
  36.     }
  37. }
复制代码
111116v5e323sks25ieekw.png.thumb.jpg
下面是使用方法,首先打开刚才制作的工具窗口,然后选择要穿的新字体。
然后去场景选择一组UI的最父级。
最后点击变变变,大功告成~!





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5