织梦网站专题模板下载,视听节目 网站建设,免费品牌网站制作,北京活动网站制作官方文档#xff1a;AssetBundle 工作流程 - Unity 手册 (unity3d.com)
之前写的博客#xff1a;AssetBundle学习_zaizai1007的博客-CSDN博客
使用流程图#xff1a; 1#xff0c;指定资源的AssetBundle属性 #xff08;xxxa/xxx#xff09;这里xxxa会生成目录AssetBundle 工作流程 - Unity 手册 (unity3d.com)
之前写的博客AssetBundle学习_zaizai1007的博客-CSDN博客
使用流程图 1指定资源的AssetBundle属性 xxxa/xxx这里xxxa会生成目录名字为xxx2构建AssetBundle包3上传AB包4加载AB包和包里面的资源
BuildAssetBundleOptions
BuildAssetBundleOptions.None使用LZMA算法压缩压缩的包更小但是加载时间更长。使用之前需要整体解压。一旦被解压这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法一旦它被下载了之后它会使用LZ4算法保存到本地上。
BuildAssetBundleOptions.UncompressedAssetBundle不压缩包大加载快
BuildAssetBundleOptions.ChunkBasedCompression使用LZ4压缩压缩率没有LZMA高但是我们可以加载指定资源而不用解压全部。 注意使用LZ4压缩可以获得可以跟不压缩想媲美的加载速度而且比不压缩文件要小。
Asset Bundle 文件 Asset Bundle
AssetBundle.LoadFromMemoryAsyncAssetBundle.LoadFromFileWWW.LoadFromCacheOrDownloadUnityWebRequest
Loading Assets from AssetBundles
//一般
T objectFromBundle bundleObject.LoadAssetT(assetName);//GameObject
GameObject gameObject loadedAssetBundle.LoadAssetGameObject(assetName);//所有资源
Unity.Object[] objectArray loadedAssetBundle.LoadAllAssets();加载Manifests文件可以处理资源的依赖
AssetBundle assetBundle AssetBundle.LoadFromFile(manifestFilePath);
AssetBundleManifest manifest
assetBundle.LoadAssetAssetBundleManifest(AssetBundleManifest);//Pass the name of the bundle you want the dependencies for.
string[] dependencies manifest.GetAllDependencies(assetBundle);
foreach(string dependency in dependencies)
{AssetBundle.LoadFromFile(Path.Combine(assetBundlePath, dependency));
}AssetBundle的卸载
卸载有两个方面
减少内存使用有可能导致丢失
所以什么时候去卸载资源
AssetBundle.Unload(true)卸载所有资源即使有资源被使用着
在关卡切换、场景切换资源没被用的时候 调用
AssetBundle.Unload(false)卸载所有没用被使用的资源
个别资源怎么卸载
通过 Resources.UnloadUnusedAssets. 场景切换的时候