其他分享
首页 > 其他分享> > AssetBundle - 打包

AssetBundle - 打包

作者:互联网

AssetBundle

Asset Bundle的作用

  1. AssetBundle是一个压缩包包含模型、贴图、预制体、声音、场景,可以在游戏运行的时候被加载;
  2. AssetBundle自身保存着互相的依赖关系;
  3. 压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输;
  4. 把一些可以下载内容放在AssetBundle里面,可以减少安装包的大小;

自己创建 AssetBundle 简易打包菜单

using UnityEditor;
using System.IO;

public class CreateAssetbundles  {

    [MenuItem("AssetsBundle/Build AssetBundles")]
     static void BuildAllAssetBundles()//进行打包
    {
        string dir = "AssetBundles";
        //判断该目录是否存在
        if (Directory.Exists(dir) == false)
        {
            Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录
        }
        //参数一为打包到哪个路径,参数二压缩选项  参数三 平台的目标
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows64);
    }
}

BuildAssetBundleOptions.None:使用LZMA算法压缩,压缩的包更小,但是加载时间更长。使用之前需要整体解压。一旦被解压,这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法,一旦它被下载了之后,它会使用LZ4算法保存到本地上。
BuildAssetBundleOptions.UncompressedAssetBundle:不压缩,包大,加载快
BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源而不用解压全部。
推荐使用LZ4压缩,可以获得跟不压缩模式相媲美的加载速度,而且比不压缩文件要小,比LZMA包体略大。

项目中直接导入现有的 AssetBundle 打包工具

  1. 2017版本前的unity,可以去 git hub上下载 Unity Asset Bundle Browser tool https://github.com/Unity-Technologies/AssetBundles-Browser
    这是一个AssetBundle的查看工具,是Unity官方发布的一个扩展工具,可以查看帮助打包AssetBundle和
    在这里插入图片描述

  2. unity 2017 以上版本的,package manager中已经集成了相关文件的下载,可直接在项目中 Install
    在这里插入图片描述
    在这里插入图片描述

AssetBundle 打包操作说明

注:打包操作说明,以现有的集成好的打包工作为使用案例进行说明

  1. 先随便先创建两个3D对象,Cube和Capsule,并将他们做成Prefab,然后去指定资源的AssetBundle属性,这里我将这两个模型都打包成model.ab包
    (xxx/common)这里xxx会生成目录,名字为common ,后面的ab是后缀名,可自己制定。
    在这里插入图片描述
    然后使用 asset bundle browser 工具进行打包
    在这里插入图片描述
    在这里插入图片描述
    输出后的包在项目目录下可以查看
    在这里插入图片描述

Asset Bundle Browser tool 页面说明

1. 所需打包资源的相关预览界面
在这里插入图片描述
2. Build界面
在这里插入图片描述

3. Inspect 检查已打包的相关资源
在这里插入图片描述

标签:LZMA,压缩,LZ4,AssetBundle,构建,打包
来源: https://blog.csdn.net/hycai_007/article/details/121380465