天天看點

編輯器工具--NGUI--圖集相關--用新的圖集替換舊的圖集

Sage_禅

qq交流群:106864335

加群連接配接:<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=7701e50a9c5f4ce04348cc37f8ff732615c0b6435ad7ef32c15ead9315561a09" target="_blank" rel="external nofollow" ><img src="//pub.idqqimg.com/wpa/images/group.png" alt="Unity-不瘋魔,不成活" title="Unity-不瘋魔,不成活"></a>

q群初建,歡迎大家加入交流。

微信公衆号:zhimeng-1314   名稱:Unity不瘋魔不成活

開發mmoarpg項目很長時間了,現在總結一些項目中自寫的一些工具作為記錄和分享。

編輯器工具--NGUI--圖集相關--用新的圖集替換舊的圖集

項目中用的是NGUI,本篇介紹工具:用新的圖集替換舊的圖集,代碼如下。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;

/// 我的工具庫--NGUI--圖集圖檔相關
/// 注:可以用,不可以改
/// 所有的相似工具類在此下添加

/// <summary>
/// 用新的圖集替換舊的圖集
/// </summary>
public class WTool_ChangeAtla : EditorWindow
{
    #region 菜單添加
    [MenuItem("WTools/Atlas/換圖集")]
    public static void Open()
    {
        EditorWindow.GetWindow(typeof(WTool_ChangeAtla));
    }
    #endregion


    #region 編輯器渲染繪制
    public UIAtlas 原圖集;
    public UIAtlas 新圖集;
    private static UIAtlas oldAtla;
    private static UIAtlas toChangeAtla;


    private void OnGUI()
    {
        原圖集 = (UIAtlas)EditorGUILayout.ObjectField(原圖集, typeof(UIAtlas), true, GUILayout.MinWidth(100f));
        新圖集 = (UIAtlas)EditorGUILayout.ObjectField(新圖集, typeof(UIAtlas), true, GUILayout.MinWidth(100f));
        toChangeAtla = 新圖集;
        oldAtla = 原圖集;
        if (GUILayout.Button("wmx變變變!"))
        {
            Change();
        }
    }
    #endregion


    #region 内部邏輯
    public static void Change()
    {
        int num = 0;
        Object[] sprites = Selection.GetFiltered(typeof(UISprite), SelectionMode.Deep);
        foreach (Object item in sprites)
        {
            UISprite sprite = (UISprite)item;
            if (sprite.atlas == oldAtla)
            {
                sprite.atlas = toChangeAtla;
                Debug.Log(item.name + ":" + sprite.name);
                num++;
            }
        }
        Debug.Log("修改完成,共修改的次數為" + num);
    } 
    #endregion
}