1. 程式人生 > >Unity關於Sprite Packer的用法

Unity關於Sprite Packer的用法

之前有人留言說想我介紹一下sprite packer的用法。那麼我也順便的介紹一下吧。

我們用來做sprite 的圖片,通常會留有很多空白的地方,我們在畫完了sprite之後,這些地方很可能就沒有什麼作用了。如果想避免這些資源上的浪費,我們可以把各個sprite做成圖集,把圖片上的空間儘量利用得充實一點。這時候,我們就需要一個製作圖集的工具。 其實這個功能要自己寫也不難的,只是把各個sprite上的圖片做copy pixel處理,然後計算一個矩形範圍,把所有拾取的圖片畫素按一定的規律放在一張圖片上面。不過這些較為底層的東西很多人都會害怕而選擇逃避,所以有很多直接可以用的工具,比如NGUI的較新版本就有這個自動圖集的功能了,或者有很多圖集製作的軟體。
Unity3d在推出2D功能的同時,也附帶了這個製作圖集的工具,也就是Sprite Packer了。下面簡單的介紹一下它的用法: 在使用這個功能之前,我們先要到editor setting裡面把Sprite Packer開啟: Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙   然後開啟sprite packer的視窗:
Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙   這個就是sprite packer的視窗了,主要的操作,其實就是左上角的這個pack的按鈕了。不過現在我們按這個按鈕,不會有任何東西出現。  Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙 在我們的專案資料夾裡面,我放了幾個已經做好切割的sprite Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙   選擇這些sprite,把屬性裡面的Packing Tag輸入一個名字。這裡我所有sprite都輸入了enemys:
Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙
  現在再來點pack按鈕,就會出現了東西了。這就是把剛才那對sprite拼起來的圖集了。 Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙 假如我們把主角土豆人的Packing Tag改成players(或者其他和之前不一樣的名字) Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙   我們再來pack,就會看到,土豆人在圖集裡面消失了。
Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙 在這個圖集選擇裡面,我們可以看到剛才新增加的players類別: Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙   選擇players,又看到土豆人了。這是因為這個sprite packer做圖集是根據Packing Tag標籤來做的,它會把同樣標籤的物體分成一類,然後製作。 Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙 實際上我們能做的操作真的不多,這個過程是自動完成的。完成之後,我們在專案面板下面選擇sprite,在圖集裡面相應的sprite會變成高亮顯示。 Unity3d的Sprite Packer用法介紹 - 阿趙 - 有爪的小羔羊阿趙
   既然這個功能是這樣自動化,那為什麼一開始是禁用狀態,需要我們手動去editor setting裡面設定開啟呢?原因是這個功能在unity開啟工程的時候會先花一些時間運算圖集,如果你需要計算的sprite很多,那麼開啟就會慢一些。計算好的圖集會放在快取資料夾Project\Library\AtlasCache裡面,如果把這裡的內容刪掉,那麼unity將會再次運算圖集。然後如果選擇了製作圖集,那麼sprite的原圖就不會經過壓縮以便拾取畫素製作圖集了。

原文連結