扩展Unity3d编辑器,批量修改Label字体颜色

来源:互联网 发布:中国吸引外资国别数据 编辑:程序博客网 时间:2024/06/10 22:28

在做游戏使用NGUI过程中,经常会遇到更改UILabel字体的颜色,手动更改Label字体颜色不仅效率很低,而且有部分Label处于未激活状态,无法找到全部Label。为此需要扩展Unity3d编辑器,写一个批量处理程序,在编辑状态更改字体颜色。主要涉及到两部分内容,一是如何扩展Unity3d编辑器,二是如何遍寻UIroot下的所有UILabel(包括未激活状态下的),下面贴出了源码。

一、在工程文件下建立一个Editor文件夹,新建一个Change_FontColor脚本,在Editor下的脚本会显示在Untiy3d编辑器中。

脚本位置

二、编辑Change_FontColor脚本,代码如下:

using UnityEngine;

using System.Collections;

using UnityEditor;

 

public classChange_FontColor : Editor {

    [MenuItem("Assets/ChangeFontColor")]

    public static void ChangeFont()

    {

        //获得UIroot

        GameObject myUIroot =(GameObject)Selection.activeObject;

        //更换特定UIlabel的字体颜色

        UILabel[] labels =myUIroot.GetComponentsInChildren<UILabel>(true);

        int length = labels.Length;

        for (int i = 0; i < length; ++i)

        {

            if (labels[i].GetComponent<UILabel>().color ==new Color(0,0,0))//黑色

            {

                labels[i].GetComponent<UILabel>().color =new Color(1,1,1);//白色

            }

        }

    }

}

首先,Change_FontColor类继承于Editor,[MenuItem("Assets/ChangeFontColor")]是按钮显示的位置在Assets/ChangeFontColor更换UILabel颜色的在

public staticvoid ChangeFont ()方法中实现

 

使用方式:鼠标选中UIroot,点击Assets/ChangeFontColor按钮就可实现效果,如下图

更改后黑色的label改为了白色。

 

更改前效果图


更改后效果图

原创粉丝点击