【Unity】Sprite Atlas功能講解

目錄

SpriteAtlas創建方法

1、Type: Maskter母版 Variant變體

2、Include Build: 勾選時運行遊戲時自動加載入內存中,否則需要手動加載(使用到的時候纔會加載!)

3、Allow Rotation:允許圖集的圖片旋轉,勾選後Unity會尋找最好姿勢放置在圖集內(這樣就能讓圖集容下更多的圖片,但是一般我們不勾選,因爲這個旋轉會影響到實際顯示。)

4、Tight Packing: 勾選後使用精度更高的裁剪圖集圖片(Mesh裁剪),否則是矩陣裁剪(圖片是一塊矩形圖),如果不需要高精度裁剪就別勾,如果發現裁剪出的圖片有顯示不正確問題,那就可以勾選它了。

5、Padding:圖集中一行或一列最大圖片個數,有2、4、8選項

6、Read/Write Enabled:圖集圖片讀寫權限

7、Generate Mip Maps: 消耗更多的內存帶來更好的表現,主要針對高配機時可開啓,手遊一般都可能不開啓。

8、sRGB:使用gamma空間存儲rgb,使用後會圖片整體變暗;具體效果不清楚,默認不選 

9、Fitler Mode: Point(像素級)、Bilinear(漸變)、Trilinear(更牛逼的)默認Bilinear(一般也是用它,除非你遊戲是像素風、或者有更高的要求時選Trilinear)

10、壓縮格式

11、Objects for Packing: 打入圖集的文件,可放入Texture2D、Sprite、文件夾放入文件夾時會將文件夾下的所有Texture2D、Sprite放入圖集

12、Pack Preview按鈕:點擊後會在預覽界面顯示出圖集的具體數值,如圖集的內部表現、空間大小、尺寸、使用的壓縮格式


官方文檔說明:https://docs.unity3d.com/2017.4/Documentation/ScriptReference/U2D.SpriteAtlas.html

SpriteAtlas創建方法

1、Type: Maskter母版 Variant變體

2、Include Build: 勾選時運行遊戲時自動加載入內存中,否則需要手動加載(使用到的時候纔會加載!)

手動加載方法如下:

using UnityEngine;
using UnityEngine.U2D; //引用SpriteAtlas的命名空間!
public class MyTest : MonoBehaviour {

	void Start () {
        //SpriteAtlasManager.atlasRegistered //SpriteAtlas加載完成後調用
        //當需要加載圖集時調用,傳入tag路徑,action回調傳入加載出來的SpriteAtlas即可完成了圖集加載,之後會觸發上面的方法
        //如果勾選了Include Build屬性,在啓動遊戲時自動進行這個操作...
        SpriteAtlasManager.atlasRequested += (string tag, System.Action<SpriteAtlas> action) =>
        {
            Debug.Log("tag:" + tag); //tag是SpriteAtlas資源的文件名稱
            action(Resources.Load<SpriteAtlas>(tag));
        };

        SpriteAtlasManager.atlasRegistered += (SpriteAtlas spriteAtlas) =>
        {
            Debug.Log("Dosomething!" + spriteAtlas.name);
            Sprite sprite = spriteAtlas.GetSprite("AnimPic_0");
            Debug.Log("從圖集中獲取到的Sprite:" + sprite.name);
        };
    }
}

 上圖爲加載失敗的情況,在編輯器模式下依然是可以看到圖片的,運行時如果圖片依賴的圖集沒有被成功加載到內存,就這樣了

請注意在圖集中它的名字只是Texture的名稱,Sprite的名字是AnimPic_0(所以如果出現加載不到圖集圖片的情況,那就是Sprite的名稱不對)

爲什麼貼圖和Sprite名稱會不一樣?一般來說是一樣的,那是因爲我進入了Sprite Editor修改了Sprite的Name(哈哈哈~)

運行時打印:

這種動態加載方法好處就是能控制加載,比如加載AB包採用異步加載,如果默認是自動的話就可能是同步加載。

3、Allow Rotation:允許圖集的圖片旋轉,勾選後Unity會尋找最好姿勢放置在圖集內(這樣就能讓圖集容下更多的圖片,但是一般我們不勾選,因爲這個旋轉會影響到實際顯示。)

4、Tight Packing: 勾選後使用精度更高的裁剪圖集圖片(Mesh裁剪),否則是矩陣裁剪(圖片是一塊矩形圖),如果不需要高精度裁剪就別勾,如果發現裁剪出的圖片有顯示不正確問題,那就可以勾選它了。

5、Padding:圖集中一行或一列最大圖片個數,有2、4、8選項

6、Read/Write Enabled:圖集圖片讀寫權限

7、Generate Mip Maps: 消耗更多的內存帶來更好的表現,主要針對高配機時可開啓,手遊一般都可能不開啓。

8、sRGB:使用gamma空間存儲rgb,使用後會圖片整體變暗;具體效果不清楚,默認不選 

9、Fitler Mode: Point(像素級)、Bilinear(漸變)、Trilinear(更牛逼的)默認Bilinear(一般也是用它,除非你遊戲是像素風、或者有更高的要求時選Trilinear)

10、壓縮格式

11、Objects for Packing: 打入圖集的文件,可放入Texture2D、Sprite、文件夾
放入文件夾時會將文件夾下的所有Texture2D、Sprite放入圖集

12、Pack Preview按鈕:點擊後會在預覽界面顯示出圖集的具體數值,如圖集的內部表現、空間大小、尺寸、使用的壓縮格式
 

 

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