文档章节

批量替换场景中的字体

 江湖令
发布于 2015/10/09 15:32
字数 264
阅读 398
收藏 0
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
public class FontReplese
{
    //批量替换场景中的字体  
    [MenuItem("Custom/Label/ChangeSceneLabel")]
    public static void ChangeSceneFont()
    {
        List<UILabel> labelList = NGUIEditorTools.FindAll<UILabel>();
        ChangeLabelFont(labelList);
    }


    public static void ChangeLabelFont(List<UILabel> labelList)
    {

        Font mFont = NGUIEditorTools.LoadAsset<Font>("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<UILabel> GetTypeList()
    {
        Object[] objList = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
        //Debug.LogError (Selection.activeObject.name);  
        Debug.LogError(objList.Length);
        List<UILabel> tmpList = new List<UILabel>();
        foreach (var tmp in objList)
        {
            if ((tmp as GameObject) != null)
            {
                string assetstr = AssetDatabase.GetAssetPath(tmp);
                GameObject obj = PrefabUtility.InstantiatePrefab(tmp) as GameObject;

                List<UILabel> 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<UILabel> GetTypeIncludeChildren(Object obj)
    {
        GameObject tmp = obj as GameObject;
        if (tmp == null)
        {
            //return new List<UILabel> ();  
        }
        List<UILabel> tmpList = new List<UILabel>();
        UILabel tmpLabel = tmp.GetComponent<UILabel>();
        if (tmpLabel != null)
        {
            tmpList.Add(tmpLabel);
        }
        foreach (Transform child in tmp.transform)
        {
            tmpList.AddRange(GetTypeIncludeChildren(child.gameObject));
        }
        return tmpList;
    }

}

转载http://blog.csdn.net/oskytonight/article/details/45250071

本文转载自:http://blog.csdn.net/oskytonight/article/details/45250071

上一篇: C#项目反编译
粉丝 2
博文 80
码字总数 18313
作品 0
西安
私信 提问
替换整个APP字体--修改全局字体样式

原文地址 首先将项目需要的字体资源放置在app下: 注意,字体ttf文件只能用英文字母,中文会报找不到文件异常。 未设置之前的布局样式: 字体文件准备好后,我们就可以按需设置自己想要的字体...

王先森oO
2018/09/14
305
0
粗暴的方式替换全局字体

序 在 Android 下使用自定义字体已经是一个比较常见的需求了,最近也做了个比较深入的研究。 那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以...

承香墨影
2017/09/28
0
0
多功能 Sketch 插件合集--WeSketch

WeSketch 是一个强大的 Sketch 插件合集,由微信设计团队量身打造,旨在让设计师和开发者更佳高效的使用 Sketch 。 更高效的团队协作,如:UI Kit 同步、色板同步等。 更快捷的交互设计,如:...

匿名
2017/07/05
7.6K
4
微信正式开源 WeSketch,让开发者更高效使用 Sketch

微信今天正式开源了 WeSketch ,这是一个由微信设计团队打造的 Sketch 插件合集,旨在让设计师和开发者更加高效的使用 Sketch 。 更高效的团队协作,如:UI Kit 同步、色板同步等。 更快捷的...

王练
2017/07/05
12.1K
12
page 修改字体,有没有什么批量操作方法?

谁知道,mac下,page对于文稿中间,相同的词汇,是否可以简单的全部做字体替换?比如,我想将全文中间 “中国”,变成粗体,这个有什么好方法可以批量操作?多谢。

中山野鬼
2013/09/09
1K
12

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据教程分享Scala系列之模式匹配和样例类

好程序员大数据教程分享Scala系列之模式匹配和样例类 1.样例类 在Scala中样例类是一中特殊的类,样例类是不可变的, 可以通过值进行比较,可用于模式匹配。 定义一个样例类: 构造器中每一个...

好程序员官网
16分钟前
3
0
让nginx上的静态网页在访问的时候没有html后缀

需求背景: 公司产品小姐姐觉得这个访问带html后缀不专业,要求访问不带html后缀 nginx 配置 #原配置 location / { index index.html index.htm index.php; try_files $...

Linux_Anna
17分钟前
3
0
beetl的内置函数

函数调用Beetl内置函数请参考附录,以下列出了常用的函数date 返回一个java.util.Date类型的变量,如 date() 返回一个当前时间(对应java的java.util.Date); ${date( "2011-1-1" , "yy...

gantaos
18分钟前
3
0
spring cloud 2.x版本 Gateway自定义过滤器教程

前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 [toc] 本文基于前两篇文章eureka-server、eureka-client、eureka-ribbon、eureka-feign和spring-gataway的实现。 参考......

毛毛向前冲V5
21分钟前
3
0
VPGAME 的 Kubernetes 迁移实践

作者 | 伍冲斌 VPGAME 运维开发工程师 导读:VPGAME 是集赛事运营、媒体资讯、大数据分析、玩家社群、游戏周边等为一体的综合电竞服务平台。总部位于中国杭州,在上海和美国西雅图分别设立了...

阿里巴巴云原生
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部