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
}