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 就是可以获得所有成功的资源,但是结果判断还是取决于所有的资源是否都成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 字符串(String)

文章目录 前言一、C#字符串&#xff08;String&#xff09;二、String 类的属性/方法总结 前言 C#基础学习入门系列- C# 字符串&#xff08;String&#xff09; 一、C#字符串&#xff08;String&#xff09; C#字符串&#xff08;String&#xff09;是一种不可变的序列字符。…

欧科云链与《警察技术》联合发布技术专题.pdf

欧科云链受《警察技术》邀请&#xff0c;于第201期期刊正式刊登“区块链生态安全与虚拟货币犯罪治理”技术专题。欧科云链作为该技术专题主要作者&#xff0c;直接参与本次期刊2篇文章撰写&#xff0c;同时为多篇文章提供欧科云链的最新数据和研究成果。 《警察技术》期刊创办于…

LeetCode——双指针

双指针 思想&#xff1a;双指针主要用于遍历数组&#xff0c;两个指针指向不同的元素&#xff0c;从而协同完成任务。 1. 两数之和Ⅱ-输入有序数组167中等 题意解读&#xff1a;从数组中找出满足相加之和等于目标数的两个数——本质是遍历数组。 存在前提假设&#xff1a; …

Python seaborn库的安装与图像的背景风格(Seaborn篇-01)

Python seaborn库的安装与图像的背景风格(Seaborn篇-01)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

RPC教程 2.支持并发与异步的客户端

1.客户端的使用例子 func main(){//1. 建立连接client, err : rpc.Dial("tcp", "localhost:1234")//2.调用调用指定的RPC方法var reply string //string有默认值err client.Call("HelloService.Hello", "hi", &reply) //即是…

使用docker配置semantic slam

一.Docker环境配置 1.拉取Docker镜像 sudo docker pull ubuntu:16.04拉取的为ununtu16版本镜像&#xff0c;环境十分干净&#xff0c;可以通过以下命令查看容器列表 sudo docker images 如果想删除多余的docker image&#xff0c;可以使用指令 sudo docker rmi -f <id&g…

linux 使用笔记

1.查看运行内存 a.Free 快速查看内存的方法&#xff0c;也是经常使用的命令&#xff0c; -h 更人性化的显示内存的单元 -m 以M的形式显示 b.Top Top命令提供了实时性的运行中的程序的资源使用统计。可以根据内存的使用和大小来进行排序。 如上所示&#xff0c;top命令可以看…

伊恩·斯图尔特《改变世界的17个方程》波动方程笔记

主要是课堂的补充&#xff08;yysy&#xff0c;我觉得课堂的教育模式真有够无聊的&#xff0c;PPT、写作业、考试&#xff0c;感受不到知识的魅力。 它告诉我们什么&#xff1f; 小提琴琴弦上某个小段的加速度&#xff0c;与相邻段相对于该段的平均位移成正比。 为什么重要&…

算子开发参考

神经网络框架自定义算子 https://www.tensorflow.org/lite/guide/ops_custom?hlzh-cn https://www.megengine.org.cn/doc/stable/zh/user-guide/tools/customop.html https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/custom_op/index_cn.html https://whu.obs.…

“GPC爬虫池有用吗?

作为光算科技的独有技术&#xff0c;在深入研究谷歌爬虫推出的一种吸引谷歌爬虫的手段 要知道GPC爬虫池是否有用&#xff0c;就要知道谷歌爬虫这一概念&#xff0c;谷歌作为一个搜索引擎&#xff0c;里面有成百上千亿个网站&#xff0c;对于里面的网站内容&#xff0c;自然不可…

TCP发送优化(ZeroWindow分析)

通信模型一&#xff1a; Client 创建一个 TCP 的 socket&#xff0c;并通过 SO_SNDBUF 选项设置它的发送缓冲区大小为 2048Byte&#xff0c;连接到 Server 后&#xff0c;每 1 秒发送一个 TCP报文(1024Byte)。Server 端不调用 recv()。预期的结果则分为以下几个阶段&#xff1…

Hive数学函数讲解

Hive 是一个基于 Hadoop 的数据仓库工具&#xff0c;它支持类似于 SQL 的查询语言 HiveQL&#xff0c;并且提供了许多内建的数学函数来处理数值数据。下面我将逐一讲解您提到的这些数学函数&#xff0c;并提供一些使用案例和注意事项。 ROUND() 功能&#xff1a;四舍五入到指定…

【小白向】MMDeploy安装部署|暗坑标注版

文章目录 序言正文1 安装PPLCV2 TensorRT环境相关3 编译MMDeploy4 编译SDK结束 序言 本文主要针对在编译安装OpenMMLab团队的MMDeploy模型部署工具时遇到的“难以下手”的问题。 由于OpenMMLab的用户中很大一部分都是具有快速开发需求的人&#xff0c;或者说其实相当部分OpenM…

c语言算法——大数相加

C数据类型 类型与描述1基本数据类型 它们是算术类型&#xff0c;包括整型&#xff08;int&#xff09;、字符型&#xff08;char&#xff09;、浮点型&#xff08;float&#xff09;和双精度浮点型&#xff08;double&#xff09;。2枚举类型&#xff1a; 它们也是算术类型&am…

【docker】之基础篇二

目录 一、docker的数据管理1、数据卷2、数据卷容器&#xff1a; 二、端口映射与容器互联容器之间的通信 三、Docker查看日志四、Dockerfile定制镜像1、DockerFile常用的命令2、DockerFile实操 一、docker的数据管理 在生产环境中使用docker&#xff0c;需要对数据进行持久化&a…

R语言的ggplot2绘制分组折线图?

R绘制分组折线图.R 首先看数据情况&#xff1a;group有3组。Time有3组&#xff0c;数据意思是在3组3个时间点测量了某指标&#xff0c;现在要绘制组1、组2、组3某指标y按时间的变化趋势 数据情况&#xff1a; 看看最终的效果图如下&#xff1a; 下面是本次使用的代码 .libPat…

OpenHarmony 应用开发入门 (二、应用程序包结构理解及Ability的跳转,与Android的对比)

在进行应用开发前&#xff0c;对程序的目录及包结构的理解是有必要的。如果之前有过android开发经验的&#xff0c;会发现OpenHarmony的应用开发也很简单&#xff0c;有很多概念是相似的。下面对比android分析总结下鸿蒙的应用程序包结构&#xff0c;以及鸿蒙对比android的诸多…

Spring第七天(AOP)

简介 AOP(Aspect Oriented Programing)面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构 作用 在不惊动原始设计的基础上为其进行功能增强 Spring理念&#xff1a;无入侵式/无侵入式 基本概念 连接点(JoinPoint) : 程序执行过程中的任意位置&a…

ros2学习笔记-CLI工具,记录命令对应操作。

目录 环境变量turtlesim和rqt以初始状态打开rqt node启动节点查看节点列表查看节点更多信息命令行参数 --ros-args topic话题列表话题类型话题列表&#xff0c;附加话题类型根据类型查找话题名查看话题发布的数据查看话题的详细信息查看类型的详细信息给话题发布消息&#xff0…

html Canvas粒子文字特效

代码有点长&#xff0c;下面是代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>HTML5 Canvas粒子效果文字动画特效DEMO演示</title><link rel"stylesheet" href"css/normalize.c…