把脚本挂在最上层的父物体就可以自动设置所有Text的字体了。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class LanguageDefaultFon
{
private static Font mDefultFont = null;
/// <summary>
/// 下载字体
/// </summary>
public static Font defultFont
{
get
{
if (mDefultFont == null)
{
mDefultFont = Resources.Load<Font>("字体名字");
}
return mDefultFont;
}
}
/// <summary>
/// 更换字体
/// </summary>
/// <param name="trans"></param>
static void ChangeFont(Transform trans)
{
//更换字体
Text[] texts = trans.GetComponentsInChildren<Text>(true);
int length = texts.Length;
for (int i = 0; i < length; ++i)
{
if (texts[i].GetComponent<Text>().font != null)
{
texts[i].font = defultFont;
}
}
}
}