Addressables(1) 从安装到加载单个/多个资源

2024-01-21 20:20

本文主要是介绍Addressables(1) 从安装到加载单个/多个资源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不想再配改那些狗屎路径,准备研究一下Adressable,据说可以用key加载指定的资源

刚安装下来,随便搞了个资源勾选了一下addressable的框框,多了好多东西啊
概念铺天盖地而来,ok 没事的 慢慢来!

前置知识

Package Manager安装
Resources加载
AssetBundle加载

Unity 2021.3.34
插件版本 1.21.17
如果跟我一样的Unity版本,大概率直接搜,会安装到1.19.19 这个版本编辑器会报错
在左边加号选择AddPackage by Name 安装更新的版本
分别输入
com.unity.addressables
1.21.17
在这里插入图片描述
安装后,可以一起安装一下示例
PrefabSpawner

加载资源

就从最基础的动态加载资源开始!

加载入参

有四种输入可以加载,文档统一叫做Key

  1. Address 就是勾选之后,输入框的内容
  2. Label 标签
    这两个就没见过了,下一篇说
  3. AssetReference object :AssetReference的实例(好像是废话
  4. IResourceLocation instance 包含加载资产及其依赖项的信息的中间对象。(?)

文档提到可以打开日志查看报错信息, Log Runtime Exceptions
最开头随便勾选了一个Addressable之后,多了很多文件
肯定在一个什么设置或者配置里 Settings or Config咯

AddressableAssetSettings
在这里插入图片描述
看来是默认勾选了

加载单个资源

先搞一个资源,创建个预制体,Inspector最上面勾选Addressable

在这里插入图片描述
勾选后,输入框会输入地址,可以在这里改名或者点击Select,找到这个资源右键简化名称
可以看到默认分了一个组 Default Local Group,这就是未来打包的时候,同一个组里的资源会打在一个AB包里
在这里插入图片描述
创建脚本,场景,把脚本找个地方挂上去,把刚刚写的TestCube填写到Key里,运行可以加载出来就没问题啦。

using System.Collections;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;internal class LoadAddress : MonoBehaviour
{public string key;AsyncOperationHandle<GameObject> opHandle;public IEnumerator Start(){//也可以用labelopHandle = Addressables.LoadAssetAsync<GameObject>(key);//同步//GameObject obj = opHandle.WaitForCompletion();yield return opHandle;if (opHandle.Status == AsyncOperationStatus.Succeeded){GameObject obj = opHandle.Result;Instantiate(obj, transform);}}void OnDestroy(){//这里也可以用游戏对象释放Addressables.Release(opHandle);}
}

Addressables下的加载都是异步的,同步方法全部标记过时,这里是使用协程的方式等待加载结束
同步的方式:https://docs.unity3d.com/Packages/com.unity.addressables@1.21/manual/SynchronousAddressables.html
op.WaitForCompletion();
注意限制:

  1. WebGL不支持,wait的做法就是在主循环等待,其他线程加载,而Web只有单线程
  2. 加载场景虽然可以用这个方法,但不是真正的完成,还是得异步激活完毕

PS:

  1. 如果有多个资源设置同一个Address,并不会报错,说明它是允许一个Address关联多个资源的,如果只想关联一个,可能需要自己实现查重工具
  2. Label和Address可以同名,但是我觉得最好不要
  3. 资源可以有多个Label

多个资源加载

https://docs.unity3d.com/Packages/com.unity.addressables@1.21/manual/load-addressable-assets.html
链接第二个例子,我就不抄代码了。

主要是MergeMode

  1. Union: Include assets that match any key
    有一个输入匹配上的就加到结果里

  2. Intersection: Include assets that match every key
    所有输入都匹配上才能加入
    如果传的是多个Address就没用,资源只有一个Address
    label就可以多个,一个资源可以有多个label

  3. UseFirst: Include assets only from the first key that resolves to a valid location
    看起来就是返回第一个有用的key的资源,可能是有多个版本的情况会用吧

最后一个参数 releaseDependenciesOnFailure
true 就是加载多个资源,如果有一个失败,就全都释放掉,包括成功的资源。适合需要完整加载的情况
false 就是可以获得所有成功的资源,但是结果判断还是取决于所有的资源是否都成功

这篇关于Addressables(1) 从安装到加载单个/多个资源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/630721

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/