Unity替换字体小工具

前一段时间公司要搞字体替换,实在不想做无脑的手动替换工作,就自己写了个替换当前场景下UI字体的小工具,话不多说上硬货。

using UnityEngine;

using System.Collections;

using UnityEditor;

using UnityEditor.SceneManagement;

using UnityEngine.UI;


public class MyText : EditorWindow {


[MenuItem("Tools/替换字体")]

public static void Open()

{

EditorWindow.GetWindow (typeof(MyText));

}

Font change;

static Font changeFont;

Font toChange;

static Font toChangeFont;

void OnGUI()

{

change = (Font)EditorGUILayout.ObjectField ("目标字体",change, typeof(Font), true, GUILayout.MinWidth (100f));

changeFont = change;

toChange = (Font)EditorGUILayout.ObjectField ("更换字体",toChange, typeof(Font), true, GUILayout.MinWidth (100f));

toChangeFont = toChange;

if (GUILayout.Button ("更换")) 

{

ChangeText ();

}

}

public static void ChangeText()

{

Transform canvas = GameObject.Find("Canvas").transform;

if (!canvas)

{

Debug.Log("sence no canvas");

return;

}

Transform[] tArray = canvas.GetComponentsInChildren<Transform>();

for (int i = 0; i < tArray.Length; i++) 

{

Text t = tArray [i].GetComponent<Text> ();

if (t) 

{

Undo.RecordObject (t,t.gameObject.name);

if (t.font == changeFont) 

{

t.font = toChangeFont;

Debug.Log ("替换成功" + t.gameObject.name);

EditorUtility.SetDirty (t);

}

}

}

}


}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 项目中有功能需要在代码中动态创建UGUI对象,但是在网上搜索了很久都没有找到类似的教程,最后终于在官方文档中...
    Zui阅读 31,134评论 11 63
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,060评论 0 2
  • 一、Unity简介 1. Unity界面 Shift + Space : 放大界面 Scene界面按钮渲染模式2D...
    MYves阅读 8,463评论 0 22
  • This article is a record of my journey to learn Game Deve...
    蔡子聪阅读 3,893评论 0 9
  • 大一的我和室友一起上课,一起吃饭,一起在寝室抱怨大学生活的无聊。去年4月我接触了简书看了一些文章,自己开始买书看...
    黄youyou阅读 237评论 5 5