博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量替换场景中的字体
阅读量:7218 次
发布时间:2019-06-29

本文共 2443 字,大约阅读时间需要 8 分钟。

hot3.png

using UnityEngine;using System.Collections;using System.Collections.Generic;using UnityEditor;public class FontReplese{    //批量替换场景中的字体      [MenuItem("Custom/Label/ChangeSceneLabel")]    public static void ChangeSceneFont()    {        List
 labelList = NGUIEditorTools.FindAll
();        ChangeLabelFont(labelList);    }    public static void ChangeLabelFont(List
 labelList)    {        Font mFont = NGUIEditorTools.LoadAsset
("Assets/font/DroidSansFallback.TTF");//注意这个地方是要替换成的字体的路径          if (mFont == null)        {            Debug.LogError(" Font not found ! ");            return;        }        foreach (var label in labelList)        {            if (label != null && label.trueTypeFont != null && label.trueTypeFont.name == "Arial")//这个地方的name可以改为原来的字体的名称              {                label.trueTypeFont = mFont;            }        }        Debug.LogError(labelList.Count);    }    //改变选中的预设上边的字体      [MenuItem("Custom/Label/ChangeSelectionLabelFont")]    public static void ChangeSelectObjFont()    {        GetTypeList();        //ChangeLabelFont ( );      }    public static List
 GetTypeList()    {        Object[] objList = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);        //Debug.LogError (Selection.activeObject.name);          Debug.LogError(objList.Length);        List
 tmpList = new List
();        foreach (var tmp in objList)        {            if ((tmp as GameObject) != null)            {                string assetstr = AssetDatabase.GetAssetPath(tmp);                GameObject obj = PrefabUtility.InstantiatePrefab(tmp) as GameObject;                List
 tmpLabel = GetTypeIncludeChildren(obj);                if (tmpLabel.Count > 0)                {                    ChangeLabelFont(tmpLabel); try                    {                        PrefabUtility.ReplacePrefab(obj, tmp);                    }                    catch (System.Exception ex)                    {                        Debug.LogError(ex.ToString() + tmp.name);                    }                    //Debug.LogError ( AssetDatabase.RenameAsset ( assetstr, name ) );                  }                GameObject.DestroyImmediate(obj);            }        }        AssetDatabase.SaveAssets();        AssetDatabase.Refresh();        return tmpList;    }    public static List
 GetTypeIncludeChildren(Object obj)    {        GameObject tmp = obj as GameObject;        if (tmp == null)        {            //return new List
 ();          }        List
 tmpList = new List
();        UILabel tmpLabel = tmp.GetComponent
();        if (tmpLabel != null)        {            tmpList.Add(tmpLabel);        }        foreach (Transform child in tmp.transform)        {            tmpList.AddRange(GetTypeIncludeChildren(child.gameObject));        }        return tmpList;    }}

转载

转载于:https://my.oschina.net/u/698044/blog/514822

你可能感兴趣的文章
BNU OJ 51000 BQG's Random String
查看>>
PAT (Advanced Level) 1044. Shopping in Mars (25)
查看>>
hdu 1531 King
查看>>
***R
查看>>
Linux 源码编译安装mysql
查看>>
取消手机端页面长按图片出现保存或者图片被打开的方法
查看>>
关于图片居中问题
查看>>
并发下的死锁问题
查看>>
Winserver下的Hyper-v “未在远程桌面会话中捕获到鼠标”
查看>>
oracle体系结构基础
查看>>
有关TCP和UDP 粘包 消息保护边界
查看>>
Mono为何能跨平台?聊聊CIL(MSIL)
查看>>
安装scrapy问题:-bash:scrapy:command not found
查看>>
CentOS7 重置root密码
查看>>
博客作业四
查看>>
Scanner 输入---从键盘输入两个数进行相加
查看>>
test
查看>>
说无可说
查看>>
mysql 语句优化
查看>>
SCP 命令参数使用详解(最详细使用指南)
查看>>