【Unity】AssetBundle详解

本文详细介绍了Unity的AssetBundle技术,包括其作为资源管理手段的作用、AssetBundle的构建过程(使用C#脚本来构建并解释了LZMA和LZ4两种压缩方式)、AssetBundle的加载方法(如LoadFromMemoryAsync、LoadFromFile等)以及如何处理AssetBundle的依赖关系。此外,还提供了资源的卸载策略以及示例代码链接。
摘要由CSDN通过智能技术生成

AssetBundle是什么

AssetBundle是Unity引擎提供的一种资源管理技术,可以用来动态的加载卸载资源,减少运行时内存压力,所以也是一种热更新技术。它是一种特定的压缩包,它可以包含模型,材质,预设包,音频,甚至整个场景。

构建AssetBundle

创建一个名为Editor的文件夹,新建一个C#脚本BuildAssetBundle

using UnityEngine;
using UnityEditor;
using System.IO;

public class BuildAssetBundle {

    [MenuItem("AssetBundleTools/BuildAllAssetBundles")]
    public static void buildAllAssetBundle()
    {
        string outPath = string.Empty;
        outPath = Application.streamingAssetsPath;
        if(!Directory.Exists(outPath))
        {
            Directory.CreateDirectory(outPath);
        }
        BuildPipeline.BuildAssetBundles(outPath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
    }
}

该脚本会创建一个名为“AssetBundleTools”的菜单项,点击里面的“BuildAllAssetBundles”会执行这段代码。
这里会自动创建一个StreamingAssets文件夹,这是我们要打包的输出路径,StreamingAssets是一个特殊文件夹,放在这里的资源在打包成apk或ipa是不会被压缩的,当然你也可以打包进AssetBundles文件夹。

AssetBundle的压缩方式:
在这之前先说一下LZMA和LZ4这两种压缩方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值