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

这篇具有很好参考价值的文章主要介绍了unity资源管理方案-YooAsset的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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


一、什么是YooAsset

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

下载地址在文末。

二、使用步骤

1.导入插件

参考官方文档的导入方式
yooasset0冗余优化,Unity 成长之路,unity,游戏引擎
安装寻址插件Addressable
yooasset0冗余优化,Unity 成长之路,unity,游戏引擎

2.配置文件

yooasset0冗余优化,Unity 成长之路,unity,游戏引擎

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

3.资源打包策略

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

4.资源打包

详细说明参考官方文档
资源构建,顶部扩展菜单栏YooAsset/AssetBundleBuilder
yooasset0冗余优化,Unity 成长之路,unity,游戏引擎
构建完成后,常态化路径下会增加一个文件夹如下,这就是构建后的资源包
yooasset0冗余优化,Unity 成长之路,unity,游戏引擎

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);
 }

加载成功!!
yooasset0冗余优化,Unity 成长之路,unity,游戏引擎


总结

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

【官方文档】
【下载地址】文章来源地址https://www.toymoban.com/news/detail-806920.html

到了这里,关于unity资源管理方案-YooAsset的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity基础笔记(7)—— 资源管理

    一、资源导入和导出 资源导入:将打包好的 unitypackage 文件直接拖拽至窗口中,Unity 会自动解析包,再点击 import 即可导入资源。 资源导出:右键点击要导出的资源文件夹,点击 export 导出资源。预制体身上自带的材质会随着预制体一并导出。 二、预制体实例化 游戏中大多数

    2024年02月16日
    浏览(31)
  • Unity框架学习--资源管理器

    1、Inspector窗口拖拽         在脚本中用public声明变量,然后在Inspector窗口把要加载的资源拖拽给该脚本的变量。         不建议在大型项目使用。在公司的项目也不要用。         如果你是独立游戏开发者,则可以用。         不支持热更新。 2、Resources         用Reso

    2024年02月12日
    浏览(35)
  • Unity基础操作-包与资源管理

     不再像以前一样,会在Unity编辑器内置的浏览器中来打开Unity的网站 并在提示窗口中有给出来解释,是说为了提升编辑器的性能. 并提供了直接到浏览器中访问资源商店的访问链接(Search Online)       因Unity3D编辑器中文包始终未全部完成翻译,具体百度翻译的中英对照情况如下

    2024年02月13日
    浏览(34)
  • 【Unity程序技巧】 资源加载管理器

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 1.涉及知识点 2. 特点 方便加载资源,为资源加载提供了接口 3.脚本 加载测试 ⭐【Unityc#专题篇】之c#进阶篇】 ⭐【Unityc#专

    2024年02月07日
    浏览(32)
  • Unity Addressables资源管理 主设置面板

    Addressables资源管理总目录 位置1 位置2     这个是全局路径配置的选择 可以点击 Manager Profiles 打开路径配置面板 打包路径设置   Send Profiler Events  打开这个选项,才能在Event Viewer窗口看到资源的事件 Log Runtime Exceptions  记录运行时的异常日志   默认情况下Addressables只记录警告

    2024年02月13日
    浏览(37)
  • Unity AssetBundles资源管理和热更新

    项目中的做法,在项目中一般会把资源按照文件目录去划分资源,以文件路径的名字作为AB的名字,一般都是把资源的这些放到预处理中。 一般会分为几个类型,比如把单个文件夹下的每个资源进行打bundle,把单个文件夹下的所有资源打成bundle,还有自定义bundle名字的类型啥

    2024年01月21日
    浏览(31)
  • Unity 如何基于addressable来做资源管理

    一、什么是Addressable系统 Addressable系统是Unity 2018.3版本中推出的一种资源管理方案,它可以帮助我们更好地管理游戏中的资源。在以往的游戏开发中,我们通常使用Resources来进行资源加载,但是这种方式存在很多问题,比如加载速度慢、内存占用高等。Addressable系统可以解决这

    2024年02月16日
    浏览(23)
  • Unity资源管理(AssetBundle加载和卸载)及内存管理(内存的申请和释放)

    GameObject, Transform, Mesh, Texture, Material, Shader, Script和各种其他Assets。 静态引用,在脚本中加一个public GameObject变量,在Inspector面板中拖一个prefab到该变量上,然后在需要引用的地方Instantiate; Resource.Load,资源需要放在Assets/Resources目录下; AssetBundle.Load, Load之后Instantiate。 GameOb

    2024年02月16日
    浏览(28)
  • 小游戏资源上传工具:Unity上传OSS管理详解

    本文将为您提供使用Unity上传OSS(对象存储服务)管理的详细步骤和说明。通过这个工具,您可以方便地将小游戏资源上传至OSS,并进行管理和访问。 使用前置步骤在《微信小游戏游戏上线之路:教你如何免费获得CDN服务器》 确保您已经在阿里云上创建了一个OSS存储空间,并

    2024年01月21日
    浏览(34)
  • Unity的AssetBundle资源运行内存管理的再次深入思考

      大家好,我是阿赵。   这篇文章我想写了很久,是关于Unity项目使用AssetBundle加载资源时的内存管理的。这篇文章不会分享代码,只是分享思路,思路不一定正确,欢迎讨论。   对于Unity引擎的资源内存管理,我猜很多朋友都存在一定的疑惑。疑惑的点有非常多,包

    2024年03月22日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包