Unity 如何基于addressable来做资源管理

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

一、什么是Addressable系统

Addressable系统是Unity 2018.3版本中推出的一种资源管理方案,它可以帮助我们更好地管理游戏中的资源。在以往的游戏开发中,我们通常使用Resources来进行资源加载,但是这种方式存在很多问题,比如加载速度慢、内存占用高等。Addressable系统可以解决这些问题,它可以实现资源的异步加载、动态加载、按需加载等功能,从而提高游戏的效率和用户体验。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

二、Addressable系统的优势

1、异步加载

Addressable系统可以实现资源的异步加载,这意味着游戏中的资源可以在后台加载,不会影响游戏的运行。这种方式可以提高游戏的加载速度,同时也可以减少内存占用,从而提高游戏的性能。

2、动态加载

Addressable系统可以实现资源的动态加载,这意味着游戏中的资源可以在运行时加载,而不是在游戏启动时加载。这种方式可以提高游戏的灵活性,同时也可以减少游戏的启动时间。

3、按需加载

Addressable系统可以实现资源的按需加载,这意味着游戏中只有需要的资源才会被加载,而不是所有的资源都被加载。这种方式可以减少内存占用,从而提高游戏的性能。

三、Addressable系统的使用

1、安装Addressable系统

在Unity中安装Addressable系统非常简单,只需要在Unity Hub中选择“Add Modules”->“Addressables”即可。安装完成后,Unity会在项目中自动创建一个“Addressable Assets”文件夹,用于存放资源。

2、创建Addressable Group

在Addressable系统中,我们需要创建一个或多个Addressable Group来管理资源。在“Addressable Assets”文件夹中右键选择“Create”->“Addressable Group”即可创建一个新的Addressable Group。在创建过程中,我们可以选择不同的打包方式、压缩方式、加载方式等。

3、添加资源

在创建完Addressable Group后,我们需要将资源添加到这个Group中。在“Addressable Assets”文件夹中右键选择“Create”->“Addressable Asset”即可创建一个新的Addressable Asset,并将其添加到指定的Addressable Group中。

4、打包资源

在添加完资源后,我们需要将这些资源打包成AssetBundle,以便在游戏运行时进行加载。在Unity中,我们可以使用Addressable系统提供的打包工具来进行打包操作。在打包完成后,Unity会在“Addressable Assets”文件夹中自动生成一个“AssetBundles”文件夹,用于存放打包后的资源。

5、加载资源

在游戏运行时,我们可以使用Addressable系统提供的API来加载资源。比如,我们可以使用Addressables.LoadAssetAsync方法来异步加载资源:

Addressables.LoadAssetAsync<GameObject>("prefab");

在加载过程中,我们可以使用异步回调函数来处理加载完成后的逻辑:

Addressables.LoadAssetAsync<GameObject>("prefab").Completed += OnLoadCompleted;

6、释放资源

在游戏运行过程中,我们需要释放不再使用的资源,以减少内存占用。在Addressable系统中,我们可以使用Addressables.Release方法来释放资源:文章来源地址https://www.toymoban.com/news/detail-602130.html

Addressables.Release(asset);

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

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

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

相关文章

  • Unity基础操作-包与资源管理

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

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

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

    2024年02月07日
    浏览(46)
  • unity资源管理方案-YooAsset的使用

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

    2024年01月20日
    浏览(51)
  • Unity AssetBundles资源管理和热更新

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

    2024年01月21日
    浏览(45)
  • 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日
    浏览(39)
  • 小游戏资源上传工具:Unity上传OSS管理详解

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

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

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

    2024年03月22日
    浏览(38)
  • 基于android的资源文件管理器

    软 件 学 院 毕业实训报告 课题名称: android资源管理器 专 业: 软件设计(游戏开发方向) 班 级: 学 号: 学生姓名: 指导教师: 年 月 日 相信大家对Android的发展历史多少都有一些了解,Android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从

    2024年02月06日
    浏览(61)
  • 如何使用Go中的Weighted实现资源管理

    本文将介绍 Go 语言中的 Weighted 并发原语,包括 Weighted 的基本使用方法、实现原理、使用注意事项等内容。能够更好地理解和应用 Weighted 来实现资源的管理,从而提高程序的稳定性。 在微服务架构中,我们的服务节点负责接收其他节点的请求,并提供相应的功能和数据。比

    2024年02月07日
    浏览(93)
  • Unity3d:GameFramework解析:实体,对象池,资源管理,获取计数,引用计数,自动释放

    1.GF万物基于引用池IReference 2.ObjectBase : IReference类的m_Target持有unity中Mono,资源,GameObejct 3.AssetObject : ObjectBase类m_Target持有Assetbundle中的Asset,具有获取,引用两个计数管理释放 4.ResourceObject : ObjectBase类m_Target持有Assetbundle,具有获取,引用两个计数管理释放 5.EntityInstanceObject :

    2024年02月11日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包