在游戲開發過程中,圖片的使用是必不可少的,尤其是在UI部分,往往會使用大量的圖片。如果每一張圖片都是單獨使用的話,實際上會對性能造成很大的損耗的。
這時候我們往往是把需要的圖片資源進行分類,然后按照需要打包成對應的圖集。這樣會方便管理和更新迭代,同時也減少了很多的性能開銷。
假如你一個UI界面使用了10張不同的圖片,那么加載這個界面的時候,就會同時對10個圖片資源進行渲染,而如果這10張圖片是在同一個圖集里面的話,那么就相當於同時只進行了1張相對較大的圖片的渲染,這樣實時渲染的性能開銷會更少,這是一種用空間換時間的一種辦法。
大家在學習過程中有可能見過類似這樣的一張圖片(下圖),這其實就是打包圖集后圖片,接下來我將教大家如何使用TexturePacker工具制作這樣圖片,並用在Unity3D中。
安裝
軟件安裝部分我就不細說了,正常的安裝步驟,我使用的版本是3.0.9,希望大家保持和我一樣的版本來學習,這里我放出一個鏈接,里面包含TexturePacker的安裝包和Unity工程所需要的Editor工具,將$TexturePackerImporter.unitypackage導入unity工程即可,導入unitypackage包屬於unity基本操作的內容,不在本節討論范圍,小白請看這(導入教程)
安裝包及Editor工具鏈接:https://pan.baidu.com/s/1i6TxRP7
密碼:0e4y
界面屬性
接下來打開軟件:
目前有兩種導入圖片的方法:
1、 拖拽圖片到右邊空白處即可完成添加單張圖片的操作
2、 拖拽文件夾到右邊空白處,即可添加文件夾內所有圖片
(建議使用文件夾形式,因為方便管理,不用每次拖拽到界面,甚至可以結合外部程序去管理文件夾)
以上紅框中的內容建議詳細了解一下,是比較重要的修改項,將鼠標懸停在上面就會顯示每個修改項的詳細介紹
這里簡單講解一下:
Output
DataFormat:務必選擇Uniyt3D
Datafile:打包導出圖集數據的路徑
Texturefile:保存的圖片格式(建議PNG)
Texturefile:打包導出圖集圖片的路徑
Geometry
Maxsize:最大導出尺寸
Sizeconstrains : 尺寸約束,對圖集尺寸進行約束,因為unity的對圖片的要求是2的次冪最為合適,所以這里建議選擇Pot(Power of 2)
Scale:導出比例,意思是原圖進行一定比例的壓縮
Layout
Allowrotation:是否允許旋轉(務必取消勾選,否則導入到游戲中圖片會發生旋轉)
Layout標簽下的前幾條屬性均與圖集的排序,圖片的間隔等有關,可以自行測試了解
打包圖集
接下來就是正式導出圖集了,點擊上方工具欄的Publish按鈕即可導出(導出前請先設置圖集圖片和數據導出的路徑)導出完成后建議Save保存工程,保存成.tps文件,這樣我們的一個圖集工程就成功建立起來了!
打包前打包后
以后更新和管理圖集的快捷操作:把更新的圖片放到對應文件夾里面,打開.tps工程,直接點擊Publish按鈕導出即可
因為打開的時候會自動重新識別文件夾里面圖片並按照之前的屬性排序,操作非常方便
導入Unity3d中
把導出的.png和.txt文件導入到unity工程中(兩個文件必須在同一目錄下),然后右鍵點擊圖集數據文件(.txt文件),點擊TexturePacker—Process to Sprite即可(此菜單項需要在導入了Editor工具后才會出現)
使用之后效果如圖:
分割后
這樣就可以像使用普通圖片一樣拖拽使用這些圖片了,接下來到底如何使用這些圖片將由你決定了!下一節我將寫一個Editor工具類,批量引用到一個預制體上,這樣我們就能在運行過程中根據圖片的名字(或約定的命名約束),動態加載圖集中的某一張圖片使用,敬請期待!