1. 程式人生 > >擴充套件Unity3d編輯器,批量修改Label字型顏色

擴充套件Unity3d編輯器,批量修改Label字型顏色

在做遊戲使用NGUI過程中,經常會遇到更改UILabel字型的顏色,手動更改Label字型顏色不僅效率很低,而且有部分Label處於未啟用狀態,無法找到全部Label。為此需要擴充套件Unity3d編輯器,寫一個批量處理程式,在編輯狀態更改字型顏色。主要涉及到兩部分內容,一是如何擴充套件Unity3d編輯器,二是如何遍尋UIroot下的所有UILabel(包括未啟用狀態下的),下面貼出了原始碼。

一、在工程檔案下建立一個Editor資料夾,新建一個Change_FontColor指令碼,在Editor下的指令碼會顯示在Untiy3d編輯器中。

指令碼位置

二、編輯Change_FontColor指令碼,程式碼如下:

using UnityEngine;

using System.Collections;

using UnityEditor;

public class Change_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 static void ChangeFont ()方法中實現

使用方式:滑鼠選中UIroot,點選Assets/ChangeFontColor按鈕就可實現效果,如下圖

更改後黑色的label改為了白色。

 

更改前效果圖


更改後效果圖