Unity资源打包相关之AssetBundle

热更新基础

AssetBundle定义和作用:

Unity菜单的Help-->Unity manual /Scriptting Reference  可以打开Unity手册或者脚本参考;

手册里找到AssetBundles: Working In Unity-->Advanced Development-->AssetBundles

把资源打包用处?

1,AssetBundle是一个压缩包包含模型、贴图、预制体、声音、甚至整个场景,可以在游戏运行的时候被加载;

2,AssetBundle自身保存着互相的依赖关系;

3,压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输;

4,把一些可以下载内容放在AssetBundle里面,可以减少安装包的大小;

什么是AssetBundle ?

  1. 它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件)

    serialized file:资源被打碎放在一个对象中,最后统一被写进一个单独的文件(只有一个)

    resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载

  2. 一个AssetBundle对象,我们可以通过代码从一个特定的压缩包加载出来的对象。这个对象包含了所有我们当初添加到这个压缩包里面的内容,我们可以通过这个对象加载出来使用。

AssetBundle使用流程(简称AB)

1,指定资源的AssetBundle属性

(xxxa/xxx)这里xxxa会生成目录,名字为xxx

2,构建AssetBundle包

3,上传AB包

4,加载AB包和包里面的资源

对要打包的预制件或文件需要进行标记,右下脚处设置

代码需要放在Assets里的Editor文件夹下:

using UnityEditor;
using System.IO;
public class AssetBundleCreate 
{
    [MenuItem("Assets/Build AssetBundles")]
    static void BuildAddAssetBundles() {
        string dir = "Assetbundles";//相对路径
        if (Directory.Exists(dir)==false)
        {
            Directory.CreateDirectory(dir);//创建路径
        }
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);//路径       目标
    }
}
这时保存代码,菜单Assets-->Build AssetBundles 点击就进行打包,打包结束后可以找到如下路径下文件:

本地加载

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadFromFileExample : MonoBehaviour
{
     void Start()
    {
        AssetBundle ab = AssetBundle.LoadFromFile("Assetbundles/scene/cube.u3d");
        //GameObject cubePrefab= ab.LoadAsset<GameObject>("Cube");
        //Instantiate(cubePrefab);
        Object[] objs = ab.LoadAllAssets();
        foreach (Object o in objs)
        {
            Instantiate(o);
        }
        AssetBundle ab2 = AssetBundle.LoadFromFile("Assetbundles/scene/sphere");

        GameObject spherePrefab = ab2.LoadAsset<GameObject>("Sphere");
        Instantiate(spherePrefab);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hemy1989

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值