Unity编辑器拓展之十五:NGUI批量替换图集工具 2.0版本

1.0版本

https://blog.csdn.net/qq_26999509/article/details/81256493

新增内容

工具1.0版本,同事在使用过程中,发现批量替换图集时,不一定是全部都替换,这样的话,工具就没法使用了。
2.0版本新增功能:对于替换图集的Sprite支持可选择性的是否替换。

工具截图

![这里写图片描述](https://img-
blog.csdn.net/20180804224118848?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

在之前的右下角空白区域,增加了预制体所有UISprite的列表显示,使用的TreeView编写的。

TreeView介绍

目前,TreeView我还没有单独写文字来介绍该内容,后续会更新。
官方文档: https://docs.unity3d.com/Manual/TreeViewAPI.html

代码Git地址

https://github.com/JingFengJi/ReplaceAtlas

欢迎加星

以上知识分享,如有错误,欢迎指出,共同学习,共同进步。


2018.8.5日更新

更新内容

1、支持Sprite预览

Gif示例图

![这里写图片描述](https://img-
blog.csdn.net/20180805211815279?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

重要代码介绍

Sprite的绘制,是通过查看UISpriteInspector类(NGUI)发现的,该类中在使用OnPreviewGUI接口绘制示意图的时候,调用了NGUIEdiotrTools.DrawSprite接口

public override void OnPreviewGUI (Rect rect, GUIStyle background)
{
    UISprite sprite = target as UISprite;
    if (sprite == null || !sprite.isValid) return;

    Texture2D tex = sprite.mainTexture as Texture2D;
    if (tex == null) return;

    UISpriteData sd = sprite.atlas.GetSprite(sprite.spriteName);
    NGUIEditorTools.DrawSprite(tex, rect, sd, sprite.color);
}

![这里写图片描述](https://img-
blog.csdn.net/20180805212237230?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

那里这次更新的内容,也使用该接口进行绘制。详情请看NGUI源码。

但是,该处PreviewGUI在底部绘制了 Sprite
Size的Label,而本工具不需要将图和尺寸信息绘制在一起,因此修改了源码,增加了一个bool类型的needSizeLabel参数,来控制是否显示尺寸信息

![这里写图片描述](https://img-
blog.csdn.net/20180805212621503?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

代码Git地址

https://github.com/JingFengJi/ReplaceAtlas

欢迎加星

以上知识分享,如有错误,欢迎指出,共同学习,共同进步。