开源一个基于Unity的Plist解析工具——TextureUnpacker

一、前言

    拆解plist大图是对已有项目进行学习(换皮)的必备手段!

    在做这个工具之前,我也曾在网上查找过有没有现成的东西,以免重复造轮子。结果发现,有很多用python脚本来做的(不方便,用之前还要搭环境),也有一些界面版的,或是版本太旧(不能拆解新的texturepacker打出来的图集),或是功能不全(只能简单拆解,无法还原)。更有的竟然挂在淘宝上售卖。。于是就做了这个工具。写核心代码耗时业余时间近一周。

二、技术选型

    基于 Unity 2018.2.11f1 (64-bit)。能确定低于5.6不能运行。

为什么选择unity来做?有以下几个原因:

    1、大多数想要拆图的人,都是游戏从业者,熟悉Unity的有不少,便于开源。

    2、有界面,为实现更好的界面提供了可能。(目前还比较丑)

    3、为跨平台提供了可能。(目前只支持发布到windows下使用)

三、核心代码讲解

    请移步 Plist解析(拆分大图为小图)的核心算法讲解。

四、开源地址

    点这里,github地址   |   欢迎 star 和 fork 。

    提示:对于不同类型plist的处理,扩展起来非常方便,只需要继承Loader,并按照plist的结构重写格式化数据的方法即可。

五、下载地址

    虽然开源,但可能很多人还是希望拿来即用。

    windows32位:  TextureUnpacker_x86(v1.0)

    windows64位:  TextureUnpacker_x86_64(v1.0)

六、注意

    若plist中小图的offset均为(0, 0),说明可能在合图时使用的是crop模式(即,直接丢弃了四周的透明像素。),这时是无法进行还原的(即,还原和裁剪的结果是一样的)。注意区分texturepacker中trim和crop的区别。

   如果拆图出错,又不想参与开源的,请留言给我,我会尽力帮你解决(目前扩展处理不同类型的plist较容易)。

七、效果演示

猜你喜欢

转载自blog.csdn.net/NRatel/article/details/85009462