unity资源管理方案-YooAsset的使用


前言

我们在开发项目时,会发现资源管理模块往往在项目架构中扮演着重要的角色,而且一个游戏的流畅性和内存方面的性能优化,往往也能看到资源管理的影子,所以一个优秀强大的资源管理方案对一个项目开发者来说是一个强大的轮子。


一、什么是YooAsset

YooAsset是一套用于Unity3D的资源管理系统,它在AssetBundle资源管理上非常强大,拥有灵活强大的打包方式和高效率分布式加载,而且针对资源热更新也有成熟的解决方案,可对项目各种使用场景都有强大的支持能力。

下载地址在文末。

二、使用步骤

1.导入插件

参考官方文档的导入方式
在这里插入图片描述
安装寻址插件Addressable
在这里插入图片描述

2.配置文件

在这里插入图片描述

通过右键创建配置文件(Project窗体内右键 -> Create -> YooAsset -> Create Setting),配置中第二个选项Default Yoo Folder Name表示为资源打包后保存在常态化路径下的文件夹名称,可以自定义修改,其他的不需要修改。

3.资源打包策略

详细说明看官方文档
创建打包策略配置文件,顶部扩展菜单栏YooAsset/AssetBundleCollector
在这里插入图片描述
Package Name:资源包名,可有多个;
Group:资源分组,可将相同模块的资源分一个组或者将相同类型的资源分一个组,我这里是将资源类型分一个组;
Collector:收集器,可以是文件夹也可以是单独的文件;
寻址路径:
在这里插入图片描述
AddressByGroupAndFileName是表示寻址路径为Group名称+“_”+资源名称,还有别的寻址类型,可自行研究,寻址路径是为了后面加载资源时用来作为唯一标识的。

4.资源打包

详细说明参考官方文档
资源构建,顶部扩展菜单栏YooAsset/AssetBundleBuilder
在这里插入图片描述
构建完成后,常态化路径下会增加一个文件夹如下,这就是构建后的资源包
在这里插入图片描述

5.资源加载

详细说明参考官方文档

初始化资源包,此步骤是后续所有资源加载的基础,必须保持此步骤成功,才能进行资源加载

 public void InitPackage()
 {
     YooAssets.Initialize();
     // 创建默认的资源包
     string packageName = "DefaultPackage";
     _package = YooAssets.TryGetPackage(packageName);
     if (_package == null)
     {
         _package = YooAssets.CreatePackage(packageName);
         //创建资源包初始化参数(用来定义资源路径)
         _async = _package.InitializeAsync(GetInitializeParameters());
         _async.Completed += OnCompleted;
         YooAssets.SetDefaultPackage(_package);
     }
 }
 //创建资源包初始化参数(用来定义资源路径)
 private InitializeParameters GetInitializeParameters()
 {
     //离线路径
     return new OfflinePlayModeParameters();
 }

 private async void OnCompleted(AsyncOperationBase obj)
 {
     Debug.Log("资源包加载完成!!");

     //资源包加载完毕,开始加载资源,location为寻址路径Group名称+“_”+资源名称,如果没有开启寻址,location即为完整素材路径
     var handler= _package.LoadAssetAsync<GameObject>("Prefabs_3Seat");
     await handler.Task;
     var go = handler.AssetObject as GameObject;
     go=Instantiate(go);
     go.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity);
 }

加载成功!!
在这里插入图片描述


总结

上文描述的是一个YooAsset插件最基础的用法,YooAsset在具体的项目还需要进行功能封装,其中同步加载和异步加载在不同场景中的应用也要根据具体情况而定,插件功能非常强大,有兴趣的可以自行探索。

【官方文档】
【下载地址】

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>