查看原文
其他

可寻址资源系统介绍

Unity Unity官方平台 2022-05-07

可寻址资源系统Addressables是Unity编辑器和运行时的资源管理系统,它改进了对具有复杂实时内容供应需求的大型制作团队的支持,同时也为应对工程挑战能力较弱的小型团队提供了实时内容处理能力。


可寻址资源系统已经脱离预览阶段,标志着我们在开发过程中解决开发者痛点的一个重要里程碑。可寻址资源系统将在Unity 2019.3作为已验证的资源包发布,同时在Unity 2018.4 LTS版本中得到支持。


开发背景


在Unity 4中,Asset Bundles作为一种底层机制引入,它会构建资源到离散单元,以便在运行时动态加载。实现Asset Bundles让开发者可以把内容和应用安装分开,这样能够以较小的初始下载大小给实时应用提供常规内容更新,并且在加入额外应用内容时,使安装包大小保持在小于无线安装的限制之内。


尽管有以上优点,但在实际生产制作中使用Asset Bundles却是一项复杂的任务。Unity中没有明确的工作流程会通过在Unity引用和加载资源的简单机制,即场景和游戏对象公有字段中的直接引用,把内容转换为Asset Bundles。


如果要把应用或游戏从利用纯静态的内置内容,转变为能够通过增量式更新来动态加载内容,该过程需要进行大量重构和自定义编程工作。这对于大多数开发者而言,是不具备这种处理能力。


可寻址资源系统

我们和开发者讨论使用Asset Bundles时,发现几乎所有成功使用的开发者都会或多或少以不同方法编写相同的高级系统。


可寻址资源系统因这种对框架的强烈需求而诞生,以解决寻址、构建、加载资源相关的一系列常见问题。


关注点分离:引用 vs. 打包资源

可寻址资源系统的主要功能是分开哪些资源会被加载,从哪里加载以及如何加载。


场景、预制件、文本资源在内的任何资源都可以标记为可寻址资源(Addressable),并得到唯一性的名称。在标记为可寻址后,资源可以在代码中通过可寻址名称并使用特别的Asset Reference脚本类型来引用和加载。


可寻址资源可以分别组合起来,以作为内置内容来构建和加载,或构建到Bundles中,从而在运行时动态加载。通过这种关注点分离,对于内容打包和分发的决定可以推迟到制作后期再做判断,无需更改游戏代码。


下图为可寻址资源系统Addressables的窗口。



运行时内存管理

在Unity中从Asset Bundles加载的关键优势是提供了一种从内存卸载不需要内容的有效方法。它可以高效跟踪已加载内容和可安全卸载的内容。


通过可寻址资源系统加载会自动提供已加载资源和依赖的高级引用计数,而且在资源不再使用时,它们可以自动卸载Bundles和关联的资源。


此外,可寻址资源系统提供了可视化性能分析器,以便实时调试加载资源和Asset Bundles引用数量。


下图为Addressables性能分析器。



更快的迭代过程

可寻址资源系统为资源加载过程提供了关键抽象,可以对内容的改动进行更快的迭代。


  • 运行模式模拟功能:资源可从磁盘直接加载而无需构建过程,同时提供通过性能分析器调试资源引用数量的功能。


  • 快速的增量式构建:可寻址资源系统伴随新的可编程构建管线推出,该管线改进了增量式构建的速度和可靠性。


  • 编辑器托管服务器:该内置功能会把可寻址内容提供连接局域网的本地设备,并提供快速便捷的方法在设备上迭代内容。


开始使用

可寻址资源系统分离了引用资源和打包资源的关联,在运行模式和部署播放器版本上实现更快的迭代过程,并提供自动内存管理和性能分析的工具。该系统为扩展性和可定制性而设计,以解决简单和复杂的用例。


可寻址资源系统目前已脱离预览阶段,开发者可以在制作的应用中使用它。我们会根据Unity和开发者的需求的变化,继续努力改进其性能和功能


可寻址资源系统解决了支持动态内容的关键技术挑战,但依旧存在最后一个关键难题:如何对资源进行托管并提供给实时制作的游戏和应用


后续我们会推出企业级的全球内容托管解决方案,它会完全集成到可寻址资源系统中。如果你希望了解这项服务,请访问以下网址进行注册:

https://create.unity3d.com/contenthostingsignup


目前已有超过300个项目正在使用可寻址资源系统,你可以使用Unity资源包管理器把它添加到自己的项目中。


请参考帮助文档,学习如何在新项目中使用可寻址资源系统:

https://docs.unity3d.com/Packages/com.unity.addressables@1.1/manual/AddressableAssetsGettingStarted.html


如果你希望把现有项目升级为使用可寻址资源系统的项目,请参考迁移指南:

https://docs.unity3d.com/Packages/com.unity.addressables@1.1/manual/AddressableAssetsMigrationGuide.html


请参考我们在GitHub上提供的示例项目:

https://github.com/Unity-Technologies/Addressables-Sample


小结

可寻址资源系统为大家介绍到这里,更多Unity最新功能介绍,尽在Unity Connect平台(Connect.unity.com)。

 

下载Unity Connect APP,请点击此处。 观看部分Unity官方视频,请关注B站帐户:Unity官方


推荐阅读

Unity Reflect的常见问题解答

Unity性能优化的最佳实践

模拟经营游戏《Project Hospital》的优化经验

揭秘Unity Hackweek 2019

Unity和Houdini场景程序化工作流程

Unity性能测试分析解决方案UPR正式上线


官方活动

活动一:Unity官方教师培训课程

7月29日-8月2日将举办Unity官方教师培训课程,现诚邀广大教师一同学习分享Unity最新技术,探讨Unity在教育教学中的创新应用。了解详情......


培训时间:7月29日-8月2日,共5天

报名地址:

https://www.bagevent.com/event/5329696


活动二:成为Unity Buddy,享受专属福利

7月22日-8月21日加入Unity Connect,创建个人频道,成为与Unity社区同行的伙伴-Unity Buddy,享受专属福利。了解详情......



喜欢本文,请点“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存