Asset bundle 资源更新详解教程之如何打包资源

 AssetBundle进行资源的更新:

Material,Shader,texture,mesh ,audio等

  AssetBundle更新的流程:

First:先开发第一个版本,

Secound:上线以后增加资源,

Third:启动运行程序 对比 服务器上的资源版本,

Fourth:将两两版本之间的差异都下载下来,但是请注意如果最新版本与以前旧版本之间(比如包的大小)相差太多,,资源相差太大,则下载最新版本,

(解释一下:版本与版本之间如何进行对比呢)通过MD5值  即通过某一个文件的唯一识别码, GUID,每次更新识别码都是唯一且不同的,具体了解可以查看视频链接,

Fifth:这样就可以将工程中所有的文件对比,有差异的文件挑选出来达成一个Zip包,解压到本地,将旧版本的资源给覆盖掉,

Sixth:加载的时候加载新的资源。

注意:发布不同的平台,都要重新打 asset bundle的包

下面开始正式进入打包过程,首先一个工程文件目录等级要划分清晰

第一步:选中Project下需要打包的物体给其命名如下所示

Asset bundle 资源更新详解教程之如何打包资源_第1张图片

第二步:给打包对象命名好之后,创建Editor文件夹并新建 BuildAsset 脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;//引入命名空间
public class BuildAsset:Editor {
    //
    [MenuItem("Itools/Builde1", false, 50)]
    //第一次打包会放在streamingAssetsPath文件夹下
    public static void BuildBundle1()
    {
       
        string outPath = Application.streamingAssetsPath + "/Windows/";//打包的输出路径,打成Windows包即PC平台
      //  BuildPipeline.BuildAssetBundles(outputPath, 0, EditorUserBuildSettings.activeBuildTarget);// EditorUserBuildSettings.activeBuildTarget表示当前是什么平台就打包对应的平台
        BuildPipeline.BuildAssetBundles(outPath,0,BuildTarget.StandaloneWindows);
    }
    //
    [MenuItem("Itools/Builde2", false, 100)]
    public static void BuildBundle2()
    {
        string outPath = Application.streamingAssetsPath + "/Android/";打成Android包,即Android平台
        BuildPipeline.BuildAssetBundles(outPath, 0, BuildTarget.Android);
    }
    /*
     OutputPath:表示assetbundle输出路径;
     BuildAssetBundleOption:表示选项,默认0(None)
     
          目前先了解这四项
            UncompressedAssetBundle = 1,//创建Bundle时不压缩
         
            CollectDependencies = 2,//收集资源的依赖关系,默认开启
         
            CompleteAssets = 4,   //  //用于保证资源的完备性,默认开启(比如有一个button需要一个图片,打包button时也会把图片放进去)   
         
            DeterministicAssetBundle = 16,//用于为资源维护固定Id 即GUID                      

             */
}
    

第三步 上述脚本完成之后执行如下

Asset bundle 资源更新详解教程之如何打包资源_第2张图片

点击Build1的Windows包如下所示:

Asset bundle 资源更新详解教程之如何打包资源_第3张图片

 

岔开话题谈一下Resources:

我们经常用到的动态加载:Resources.load 

Resources 这个文件夹里的资源是不能进行更新的,文件夹大小真机不能超过2G,文件夹越大,第一次启动就越慢。

相关知识借鉴:

https://tv.sohu.com/v/dXMvMjQwNzYwNzQ4LzEwMjQ4MTYxMy5zaHRtbA==.html

 

 

 

你可能感兴趣的:(Asset bundle 资源更新详解教程之如何打包资源)