一個基於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的結構重寫格式化數據的方法即可。

五、下載地址

雖然開源,但可能很多人還是希望拿來即用。

windows:textureUnpacker

六、注意

若plist中小圖的offset均爲(0, 0),說明可能在合圖時使用的是crop模式(即,直接丟棄了四周的透明像素。),這時是無法進行還原的(即,還原和裁剪的結果是一樣的)。注意區分texturepacker中trim和crop的區別。

如果拆圖出錯,又不想參與開源的,請留言給我,我會盡力幫你解決(目前擴展處理不同類型的plist較容易)。

七、效果演示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章