小工具知识网

当前位置: 首页 > 行业知识 > Unity中的StreamingAssets— AB包打包方法及AB包加载

行业知识

Unity中的StreamingAssets— AB包打包方法及AB包加载

2026-11-01 03:00:14 来源:互联网转载

打包StreamingAssets

创建资源
1.  Assets下新建GameRes文件夹2.  新建一个UI预设
手动打包
  1. 加载官方提供好的打包工具:Asset Bundle Browser
  2. Windows->Package Manager 搜索Asset Bundle Browser,Install
  3. Windows-> AssetBundle Browser打开打包界面
  4. 直接将要打包的资源拖进Confihgure界面,或者右键点击添加新建
  5. Build界面

    1. Build Target :选择目标打包平台

    2. Output Path:输出路径

    3. Clear Folders:每次打包时,将文件夹全部清空再打包

    4. Copy to StreamingAssets:打包时将资源自动复制到StreamingAssets文件夹中

    5. Compression:压缩方式,No Compression(不会把AB包进行压缩,解压快,但包特别大),LZMA(压缩包最小,解压满,如果需要使用AB包中的一个资源,需要将整个包解压),LZ4(压缩包大于LZMA,用什么就解压什么,内存占用低)

    6. Exclude Type Information:打包时不写入资源的类型信息

    7. Force Rebuild:重新打包时需要重新构建包。和Clear Folders类似,不同点在于不会删除不再存在的包。一般选择Clear Folders代替。

    8. Ignore Type Tree Changes:增量构建检查时,忽略类型树的更改

    9. Append Hash:将文件的哈希值附加到资源包名上

    10. Strict Mode:严格模式,如果打包时报错,则打包直接失败(无法成功)。一般可以打开。

    11. Dry Run Build:运行时构建

  6. 打包出的文件

    1. 主包 : StreamingAssets文件夹中会有一个和AssetBundle文件夹中预设输出路径名字一样的打包文件(全是二进制),这些就是主包,包含包与包的依赖关系

    2. 资源文件:没有后缀名的文件就是资源文件

    3. Manifest文件:对应资源文件的配置信息,AB包文件信息;当加载时,提供了关键信息,资源信息,依赖关系,版本信息等等。

代码打包
  1. Editor下的代码
public class ABTool : Editor{    [MenuItem("GameTool/BuildAB包")]    public static void BuildAB()    {        string targetPath = Application.streamingAssetsPath + "/ABRes";        BuildUtils.BuildGameResBundle(targetPath);        Debug.Log("BuildAssetBundle Done");    }}
  1. 打包代码
public class BuildUtils{    ///     /// 打包游戏资源AssetBundle    ///     public static void BuildGameResBundle(string targetPath)    {        Hashtable tb = new Hashtable();        tb["uiprefabs.bundle"] = "GameRes/AUI";        AssetBundleBuild[] buildArray = MakeAssetBundleBuildArray(tb);        BuildBundles(buildArray, targetPath);    }    ///     /// 根据哈希表构建AssetBundleBuild列表    ///     /// 哈希表,key为assetBundleName,value为目录    ///     public static AssetBundleBuild[] MakeAssetBundleBuildArray(Hashtable tb)    {        AssetBundleBuild[] buildArray = new AssetBundleBuild[tb.Count];        int index = 0;        foreach (string key in tb.Keys)        {            buildArray[index].assetBundleName = key;            List fileList = new List();            fileList = GetFiles(Application.dataPath + "/" + tb[key], true);            buildArray[index].assetNames = fileList.ToArray();            ++index;        }        return buildArray;    }    ///     /// 递归遍历获取目标目录中的所有文件    ///     /// 目标目录    /// 是否要切割目录,以Assets目录为根    public static List GetFiles(string sourceDir, bool splitAssetPath)    {        List fileList = new List();        string[] fs = Directory.GetFiles(sourceDir);        string[] ds = Directory.GetDirectories(sourceDir);        for (int i = 0, len = fs.Length; i  
  1. 点击工具栏上的GameTool/BuildAB包开始自动打包

  2. 生成AB资源

  3. 注意事项

    1. **打包带Shader的资源或者特效的预设时,要在设置中添加对应的Shaser。**设置方法如下—
    2. 打开BuIild Setting -> Player Setting
    3. 打开Graphics 下滑找到** Built-in Shader Setting -> Always Included Shaders
    4. 添加用到的Shaders

资源加载

加载资源
 /// AssetBundle资源字典 Dictionary dic_abres;  ///  /// 加载资源包 ///  void LoadABRes() {     dic_abres = new Dictionary();     string[] res = { "uiprefabs"};     for (int i = 0; i                                                 

上一篇:英语里不好怎么说?

下一篇:亚马逊服务器怎么看价格?