Unity AssetBundle 打包 四种加载方式 服务器加载

本文介绍了Unity的AssetBundle概念、作用及使用流程,包括AssetBundle的打包配置、读取方式、资源卸载和文件校验。重点讲述了从服务器加载AssetBundle的四种方法,以及AssetBundle的打包策略,强调了正确管理和卸载资源的重要性。

学习目标:

学习AssetBundle

学习内容:

学习时间:

2021.7.22

学习产出:

官方文档关于AssetBundle介绍

1、 AssetBundle的定义和作用

用处?

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

注意
首先我们在Unity的右下角定义的那里,定义的是资产包名,而不是资产名。

2.什么是AssetBundle

可以归为两点:
1,它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件)
serialized file:资源被打碎放在一个对象中,最后统一被写进一个单独的文件(只有一个)
resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载
2,它是一个AssetBundle对象,我们可以通过代码从一个特定的压缩包加载出来的对象。这个对象包含了所有我们当初添加到这个压缩包里面的内容,我们可以通过这个对象加载出来使用。

3.使用效果


图片展示了我们是将Asset打包成AssetBundle然后上传到服务器,然后在客户端再次登录的时候向服务器检查更新,如果需要更新的话,那么就下载新的资源包(AssetBundle)。一共有四种获取资源包的方法。

4.编辑器代码

using UnityEditor;
using System.IO;

    [MenuItem("Assets/Build AssetBundles")]
    public static void BulidAllAssetBundles()
    {
   
   
        string dir = "AssetBundles";
        if (Directory.Exists(dir) == false)
        {
   
   
            Directory.CreateDirectory(dir);
        }
        BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
    }

编辑器就是可以在游戏不运行状态下可以在编辑器页面进行执行的代码。值得一提的是Directory的调用,一个是Exists方法,判断是否存在这个文件夹,还有是CreateDirectory的方法。

5.打包配置

在这里插入图片描述
这里定义的是资产包名,而不是资产名。

前面的是前缀“capsule”后面的是后缀。也就是.unity3d。同时前缀可以自定义路径,比如scene/capsule。那么就会在根目录下面对应生成一个scene的文件夹,然后把capsule放在里面。

6.打包文件详解

首先,当我们在Unity的编辑器点击了Build AssetBundles,它会在根目录下面会生成
在这里插入图片描述
打开.manifest
在这里插入图片描述
里面有三个info,对应着三个我们打包出来的AssetBundle。那么我们就可以通过遍历它的manifest文件来获取我们想要找的AssetBundle。
在这里插入图片描述

7.读取AssetBundle

        //加载物体
       //1.获得AssetBundle
       //这里的ab1是获取对应cube的身上material的share包。如果没有拿到share包,cube就会变红紫色(无material)状态。只需要在对应的Material使用前去获取share就行了。
       AssetBundle ab1 = AssetBundle.LoadFromFile(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值