一、前言
拆解plist大图是对已有项目进行学习(换皮)的必备手段!
在做这个工具之前,我也曾在网上查找过有没有现成的东西,以免重复造轮子。结果发现,有很多用python脚本来做的(不方便,用之前还要搭环境),也有一些界面版的,或是版本太旧(不能拆解新版本texturepacker打出来的图集),或是功能不全(只能简单拆解,无法还原)。更有的竟然挂在淘宝上售卖。。于是就做了这个工具。写核心代码耗时业余时间近一周。
二、技术选型
基于 Unity 2018.2.11f1 (64-bit)。能确定低于5.6不能运行。
为什么选择unity来做?有以下几个原因:
1、大多数想要拆图的人,都是游戏从业者,熟悉Unity的有不少,便于开源。
2、有界面,为实现更好的界面提供了可能。(目前还比较丑)
3、为跨平台提供了可能。(目前只支持发布到windows下使用)
三、核心代码讲解
四、开源地址
点这里,github地址 | 欢迎 star 和 fork 。
提示:对于不同类型plist的处理,扩展起来非常方便,只需要继承Loader,并按照plist的结构重写格式化数据的方法即可。
五、下载地址
虽然开源,但可能很多人还是希望拿来即用。
windows:textureUnpacker
六、注意
若plist中小图的offset均为(0, 0),说明可能在合图时使用的是crop模式(即,直接丢弃了四周的透明像素。),这时是无法进行还原的(即,还原和裁剪的结果是一样的)。注意区分texturepacker中trim和crop的区别。
如果拆图出错,又不想参与开源的,请留言给我,我会尽力帮你解决(目前扩展处理不同类型的plist较容易)。