AssetBundle 资源打包 加载 卸载

本文详细介绍了Unity中AssetBundle的打包、加载、卸载流程。包括如何使用BuildAssetBundles函数进行打包,理解不同压缩选项如LZMA和LZ4的差异,以及各种加载方式如WWW.LoadFromCacheOrDownload、LoadFromFile等。还提到了资源的卸载策略,AssetBundle.Unload(true)和(false)的区别,并讨论了AssetBundle的资源管理,强调了正确调用Unload函数的重要性。此外,还涉及了AssetBundle的校验方法CRC、MD5和SHA1的比较。
摘要由CSDN通过智能技术生成

 

 

1 给要打包的资源设置标记,表示对应的包名:

  

 

2 Unity5 AssetBundle不需要我们来管理引用关系了

 

 

 

3 可以使用代码批量设置包名

 AssetImporter ai = AssetImporter.GetAtPath(assetPath);
 i.assetBundleName = xxx;
 ai.assetBundleVariant = xxx;

 

 

 

4 Build the AssetBundles

Create a folder called Editor in the Assets folders, and place a script with the following contents in the folder:

using UnityEditor;

public class CreateAssetBundles
{
    [MenuItem("Assets/Build AssetBundles")]//菜单选项
    static void BuildAllAssetBundles()
    {
        string assetBundleDirectory = "Assets/AssetBundles";//打包到哪里
        if(!Directory.Exists(assetBundleDirectory))
{
    Directory.CreateDirectory(assetBundleDirectory);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
    }
}

 

 

BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);

是主要的打包函数。

其中第二个参数,

BuildAssetBundleOptions

BuildAssetBundleOptions.None:使用LZMA算法压缩,压缩的包更小,但是加载时间更长。使用之前需要整体解压。一旦被解压,这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法,一旦它被下载了之后,它会使用LZ4算法保存到本地上。

BuildAssetBundleOptions.UncompressedAssetBundle:不压缩,包大,加载快

BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源而不用解压全部。

注意使用LZ4压缩,可以获得可以跟不压缩想媲美的加载速度,而且比不压缩文件要小。

https://docs.unity3d.com/Manual/AssetBundles-Building.html

 

调用该函数,unity会自动根据资源的标签进行打包,而且是增量打包,

  a.对于资源没有变更的bundle包,不会触发重新打包;
  b.资源没变,即使生成目录下的bundle包被删除了,unity也不会重新打包;
  c.生成目录下的bundle包对应的manifase被删了,会重新打包;
  d.可以使用BuildAssetBundleOptions.ForceRebuildAssetBundle参数触发强制重新打包。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值