unity3d資源打包總結


http://www.manew.com/blog-33734-12973.html
unity 打包的時候會把下面幾個文件資源打進apk或者ipa包里面
1. Asset下的所有腳本文件
2. Asset下所有引用的文件(比如 場景中直接使用到的資源)
3. (這里的resorces不是特指根目錄下的Resources,也可以是子目錄下的,只要文件夾名字叫Resources就可以)Resources文件夾下所有資源,這個文件夾下的資源無論是否被用到,都會被壓縮打進包里面,程序中通過Resources.Load來加載
4 StreamingAssets。這個文件夾會不會被壓縮,被原封不動地打進包,是個只讀文件夾。有熱更新的游戲,會把打包的assertbundle放在這個文件夾下,游戲開始的時候,會把這些assertbundle 拷貝到Application.persistentDataPath目錄下(這個目錄可以讀寫)。如果有新的資源,下載到的新assertbundle 會覆蓋原來的資源。
5.Plugins 這個文件夾只能是Assets文件夾的直接子目錄。它是用來放native插件的
 
關於assertbundle,unity  提供了BuildPipeline.BuildAssetBundles方法,我們可以用BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies()處理資源依賴關系。比如:
//公共的關聯性素材綁定
     A  BuildPipeline.PushAssetDependencies();
        assetfile = assetPath + "shared" + AppConst.ExtName;
        mainAsset = LoadAsset("UI/Shared/Atlas/Dialog.prefab");
        addis = new Object[3];
        addis[0] = LoadAsset("Atlas/BattleAtlas.prefab");
        addis[1] = LoadAsset("Atlas/CardAtlas.prefab");
        addis[2] = LoadAsset("Atlas/DialogAtlas.prefab");
  BuildPipeline.BuildAssetBundle(mainAsset, addis, assetfile, options, target);
///生成LoginPanel素材綁定
  B     BuildPipeline.PushAssetDependencies();
        mainAsset = LoadAsset("UI/Login/Prefabs/LoginPanel.prefab");
        assetfile = assetPath + "login" + AppConst.ExtName;
        BuildPipeline.BuildAssetBundle(mainAsset, null, assetfile, options, target);
    C    BuildPipeline.PopAssetDependencies();
///生成BattlePanel素材綁定
    D  BuildPipeline.PushAssetDependencies();
        mainAsset = LoadAsset("UI/Battle/Prefabs/BattlePanel.prefab");
        assetfile = assetPath + "battle" + AppConst.ExtName;
        addis = new Object[1];
        addis[0] = LoadAsset("UI/Battle/Prefabs/UICard.prefab");
        BuildPipeline.BuildAssetBundle(mainAsset, addis, assetfile, options, target);
    E    BuildPipeline.PopAssetDependencies();
    F  BuildPipeline.PopAssetDependencies();
 
A和F對應  B和C對應  D和E對應,說明LoginPanel和BattlePanel資源會用到公共資源shared的。
 
unity5 提供了自動處理依賴關系,不過每個資源都需要在編輯器上手動設置assetbundleName。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM