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,本篇介紹工具:用新的圖集替換舊的圖集,代碼如下。
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
}