Unity网络交互☀️AssetBundle四、:最新版如何下载、加载与卸载AssetBundle

在这里插入图片描述 

目录

🟥下载、加载Bundle

1️⃣ 从本地下载加载资源

2️⃣ 从网络下载加载资源


 

🟥下载、加载Bundle

要下载什么?

你打包一个资源CutscenesMovie.mp4(定义了其版本为1)到StreamingAssets文件夹下,一共生成了4个资源:

cutscenes.1

cutscenes.1.manifest

Win.manifest

Win

cutscenes.1大小最大,我们下载的也就是它。

下载分为两种:

1、从本地下载任意资源

2、从网络下载资源

 

1️⃣ 从本地下载加载资源

本地指的是StreamingAssets文件夹。该文件夹是只读文件夹。Bundle资源只能放在这,别的路径无法读取。

先读出来,再放到可读写文件夹 Application.persistentDataPath 。该路径内容不清空。只有在运行的时候本应用可读取

    IEnumerator StartLoadBundle_IE()
    {
        yield return null;

        //加载AssetBundle之前,先加载依赖的Bundle
        //字符串"StreamingAssets",是一个文件。这个文件的名字,是根据 Skode_AssetBuilder 脚本,打包到哪个文件夹下,这个文件就叫什么名字。
        //字符串"AssetBundleManifest",是固定写法。
        AssetBundle assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "StreamingAssets"));
        AssetBundleManifest manifest = (AssetBundleManifest)assetBundle.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
        //字符串"cutscenes.1",是你要加载的视频AB包名字(带后缀名)
        foreach (var item in manifest.GetAllDependencies("cutscenes.1"))
        {
            AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, item));
        }

        //------若要加载的文件只是一个视频或者其他,无依赖,可只做下面,直接加载Bundle文件,直接读Bundle即可------//

        //从硬盘读取到Bundle——cutscenes.1
        assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "cutscenes.1"));
        //从Bundle——cutscenes.1中读取视频资源资源 CutscenesMovie
        //字符串 CutscenesMovie ,是你给这个视频打AB包,这个视频的名字。可带可不带后缀名
        video = assetBundle.LoadAsset<VideoClip>("CutscenesMovie.mp4");

        videoPlayer.clip = video;
        videoPlayer.Play();
    }

 

2️⃣ 从网络下载加载资源

    void Start()
    {
        //加载AssetBundle之前,先加载依赖的Bundle
        //字符串"StreamingAssets",是一个文件。这个文件的名字,是根据 Skode_AssetBuilder 脚本,打包到哪个文件夹下,这个文件就叫什么名字。
        //字符串"AssetBundleManifest",是固定写法。
        AssetBundle assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "StreamingAssets"));
        AssetBundleManifest manifest = (AssetBundleManifest)assetBundle.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
        //字符串"cutscenes.1",是你要加载的视频AB包名字(带后缀名)
        foreach (var item in manifest.GetAllDependencies("cutscenes.1"))
        {
            AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, item));
        }

        //从硬盘读取到Bundle——cutscenes.1
        assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "cutscenes.1"));
        //从Bundle——cutscenes.1中读取视频资源资源 CutscenesMovie
        //字符串 CutscenesMovie ,是你给这个视频打AB包,这个视频的名字。可带可不带后缀名
        video = assetBundle.LoadAsset<VideoClip>("CutscenesMovie.mp4");

        videoPlayer.clip = video;
        videoPlayer.Play();
    }

 

 

大家还有什么问题,欢迎在下方留言!


 

在这里插入图片描述


如果你有 技术的问题 或 项目开发

都可以加下方联系方式

和我聊一聊你的故事🧡

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值