1. 程式人生 > >unity 資源打包

unity 資源打包

這是在編輯器下實現的方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;


public class CreateAB  {




    [MenuItem("Toosl/CreatAB")]
    static void BuildAllAssetBundles()
    {


        string dir = "AssetBundles";




        if (!Directory.Exists(dir))   //"沒有資料夾,建立一個新的
        {
            Directory.CreateDirectory(dir);
            
        }else
        {
            Directory.Delete(dir, true);   //有資料夾,刪除資料夾裡面的內容,再建立一個新的資料夾
            Directory.CreateDirectory(dir);


        }


         //引數1: 檔案輸出地址   引數2:打包方式  參選3:打包平臺,輸出平臺自己選擇,安卓選安卓,蘋果選蘋果
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);


    }





}




/* 
 *   注意   關於打包資源的指令碼,在移動平臺下Assetbundle裡面放的指令碼是不會被執行的,
 *          如果你打包時,在物體上掛指令碼了,載入資源時,會自動在本地找腳有,如果有就會掛上,沒則不掛
 *          載入進遊戲中Prefab會自動在本地找它身上掛著的指令碼,他是根據指令碼的名來尋找,掛前的參選數照舊,如果本地有這條指令碼的話。
 *          
 *          Unity3D引擎為我們提供了三種壓縮策略來處理AssetBundle的壓縮,即:
 *          
 *           LZMA格式   LZ4格式     不壓縮
 *           
 *           
 *           LZMA格式: 在預設情況下,打包生成的AssetBundle都會被壓縮。在U3D中,AssetBundle的標準壓縮格式便是LZMA(LZMA是一種序列化流檔案)   
 *                      ,因此在預設情況下,打出的AssetBundle包處於LZMA格式的壓縮狀態,在使用AssetBundle前需要先解壓縮。                     
 *                       使用LZMA格式壓縮的AssetBundle的包體積最小(高壓縮比),但是相應的會增加解壓縮時的時間。
 *                       
 *           LZ4格式: 由於LZ4的壓縮比一般,因此經過壓縮後的AssetBundle包體的體積較大(該演算法基於chunk)。
 *                     但是,使用LZ4格式的好處在於解壓縮的時間相對要短。
 *                     
 *                     若要使這種格式就在 打包資源的第二個引數上面填  BuildAssetBundleOptions.ChunkBasedCompression
 *            
 *            不壓縮:我們也可以不對AssetBundle進行壓縮。沒有經過壓縮的包體積最大,但是訪問速度最快。
 *                     若要使這種格式就在 打包資源的第二個引數上面填   BuildAssetBundleOptions.UncompressedAssetBundle
 *                    
 *            
 *                     
 *           
 *           


          

執行此程式碼會打包帶有標籤有資源,如圖