Unity資源打包之Asset Bundle

Unity資源打包之Asset Bundle

Asset Bundle的作用
1.AssetBundle是一個壓縮包包含模型、貼圖、預製體、聲音、甚至整個場景,可以在遊戲運行的時候被加載;
2.AssetBundle自身保存着互相的依賴關係;
3.壓縮包可以使用LZMA和LZ4壓縮算法,減少包大小,更快的進行網絡傳輸;
4.把一些可以下載內容放在AssetBundle裏面,可以減少安裝包的大小;

什麼是AssetBundle
1,它是一個存在於硬盤上的文件。可以稱之爲壓縮包。這個壓縮包可以認爲是一個文件夾,裏面包含了多個文件。這些文件可以分爲兩類:serialized file 和 resource files。(序列化文件和源文件)
serialized file:資源被打碎放在一個對象中,最後統一被寫進一個單獨的文件(只有一個)
resource files:某些二進制資源(圖片、聲音)被單獨保存,方便快速加載
2,它是一個AssetBundle對象,我們可以通過代碼從一個特定的壓縮包加載出來的對象。這個對象包含了所有我們當初添加到這個壓縮包裏面的內容,我們可以通過這個對象加載出來使用。

AssetBundle打包之腳本打包

private static void IosBuildAssetBundle()
    {
        string iosTargetPath = Application.streamingAssetsPath + "/windows";

        if (!Directory.Exists(iosTargetPath))
        {
            Directory.CreateDirectory(iosTargetPath);
        }

        BuildAssetBundleOptions options = BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.ChunkBasedCompression;
        BuildPipeline.BuildAssetBundles(iosTargetPath, options, BuildTarget.iOS);
        AssetDatabase.Refresh();
        Debug.Log("打包完成");
    }

完整的打包腳本訪問github地址

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