赞
踩
我们在开发项目时,会发现资源管理模块往往在项目架构中扮演着重要的角色,而且一个游戏的流畅性和内存方面的性能优化,往往也能看到资源管理的影子,所以一个优秀强大的资源管理方案对一个项目开发者来说是一个强大的轮子。
YooAsset是一套用于Unity3D的资源管理系统,它在AssetBundle资源管理上非常强大,拥有灵活强大的打包方式和高效率分布式加载,而且针对资源热更新也有成熟的解决方案,可对项目各种使用场景都有强大的支持能力。
下载地址在文末。
参考官方文档的导入方式
安装寻址插件Addressable
通过右键创建配置文件(Project窗体内右键 -> Create -> YooAsset -> Create Setting),配置中第二个选项Default Yoo Folder Name表示为资源打包后保存在常态化路径下的文件夹名称,可以自定义修改,其他的不需要修改。
详细说明看官方文档
创建打包策略配置文件,顶部扩展菜单栏YooAsset/AssetBundleCollector
Package Name:资源包名,可有多个;
Group:资源分组,可将相同模块的资源分一个组或者将相同类型的资源分一个组,我这里是将资源类型分一个组;
Collector:收集器,可以是文件夹也可以是单独的文件;
寻址路径:
AddressByGroupAndFileName是表示寻址路径为Group名称+“_”+资源名称,还有别的寻址类型,可自行研究,寻址路径是为了后面加载资源时用来作为唯一标识的。
详细说明参考官方文档
资源构建,顶部扩展菜单栏YooAsset/AssetBundleBuilder
构建完成后,常态化路径下会增加一个文件夹如下,这就是构建后的资源包
初始化资源包,此步骤是后续所有资源加载的基础,必须保持此步骤成功,才能进行资源加载
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在具体的项目还需要进行功能封装,其中同步加载和异步加载在不同场景中的应用也要根据具体情况而定,插件功能非常强大,有兴趣的可以自行探索。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。