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

这篇具有很好参考价值的文章主要介绍了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
Addressables(1) 从安装到加载单个/多个资源,游戏开发,unity,游戏引擎
安装后,可以一起安装一下示例
PrefabSpawner

加载资源

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

加载入参

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

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

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

AddressableAssetSettings
Addressables(1) 从安装到加载单个/多个资源,游戏开发,unity,游戏引擎
看来是默认勾选了

加载单个资源

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

Addressables(1) 从安装到加载单个/多个资源,游戏开发,unity,游戏引擎
勾选后,输入框会输入地址,可以在这里改名或者点击Select,找到这个资源右键简化名称
可以看到默认分了一个组 Default Local Group,这就是未来打包的时候,同一个组里的资源会打在一个AB包里
Addressables(1) 从安装到加载单个/多个资源,游戏开发,unity,游戏引擎
创建脚本,场景,把脚本找个地方挂上去,把刚刚写的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()
    {
    	//也可以用label
        opHandle = 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 就是可以获得所有成功的资源,但是结果判断还是取决于所有的资源是否都成功文章来源地址https://www.toymoban.com/news/detail-811519.html

到了这里,关于Addressables(1) 从安装到加载单个/多个资源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity Addressables资源管理 主设置面板

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

    2024年02月13日
    浏览(49)
  • Unity Addressables学习笔记(3)---加载远程场景Scenes

    我是创建在Resources/Scenes目录下,如图: Game1Group就是我新创建的一个Group用来存放场景1的所有资源,分组的配置跟Remote一样,都是远程的,加载地址是我本地启动的web服务器地址,URL里WebGL那个目录也不是必须的,根据自己实际的来。 上边的图就是拖完的状态。 我是在最开始

    2024年01月25日
    浏览(74)
  • 【Unity使用addressables制作资源热更+实时动态热更基本记录】

    一、Addressables基础操作教程 1、下载Addressables插件 点击菜单Window / Package Manager,打开插件包管理界面,搜索addressables Addressables的打包方式其实也是AssetBundle格式,只是在此基础上做了一层封装,方便进行管理(比如打包、加载、依赖等)。而我们知道,没有加密的AssetBundle是

    2024年02月10日
    浏览(37)
  • 【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】

    众所周知,工欲善其事必先利其器,有一个好的工具可以让我们事半功倍,有一个好用的网站更是如此! 但是好用的网站真的太多了,收藏夹都满满的(但是几乎没打开用过😁)。 所以本文是对Unity相关的网站进行一个资源整合,可以让我们更方便的去学习Unity的更多知识内容

    2024年02月16日
    浏览(65)
  • 网站开发中如何优化图片资源的加载速度

    在网站开发中,优化图片资源的加载速度对于提高用户体验和网站性能至关重要。通过采取一系列的优化措施,可以减少图片的文件大小,改善加载速度,并确保图片在不影响质量的情况下显示良好。 使用适当的图片格式:选择适合的图片格式可以有效减少文件大小。JPEG适

    2024年02月05日
    浏览(52)
  • Git提交单个或者多个文件

    Git提交指定文件步骤 1.git status //查看修改的所有内容(或者git status -s) 2.git add ’ ’,例如:(git add components/pages/holders/xxx.vue) //’ \\\'引号中间放上文件名,执行上一步后,会显示文件名跟目录 //多个文件用空格分开 3.git stash -u -k //忽略其他文件,很重要的一步!!!! 4.gi

    2024年02月01日
    浏览(50)
  • Docker宿主机复制(单个文件夹/多个文件/单个文件)到容器

    我的JPEGImages里面包含了多张图片,下面的指令将宿主机JPEGImages目录下的所有文件和子目录复制到7a7608e0bf84容器的/home/PaddleSeg/input/目录下 使用多行docker cp指令 docker cp 容器ID或名称:容器源路径 宿主机目标路径 docker cp 宿主机目标路径 容器ID或名称:容器源路径

    2024年02月08日
    浏览(52)
  • `systemctl` 启动单个服务,其中包含多个进程

    要使用 systemctl 启动单个服务,其中包含多个进程,你可以使用 Systemd 的 template 机制。以下是使用 Systemd \\\'template\\\' 以创建一个可同时启动多个进程的服务单元文件的过程: 为你的服务创建一个 template 服务单元文件。服务单元文件通常位于 /etc/systemd/system 目录中。使用以下命令

    2024年02月06日
    浏览(46)
  • 《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发

    目录 一、开发环境介绍 二、开发内容 2.1 修改窗口的大小。 2.2 添加加载场景相关代码 2.3 添加资源 三、显示效果 四、知识点  4.1 Sprite 4.2 定时器 操作系统:UOS1060专业版本。 cocos2dx:版本 环境搭建教程: 统信UOS下配置安装cocos2dx开发环境_三雷科技的博客-CSDN博客        游

    2024年02月15日
    浏览(62)
  • C#开发的OpenRA游戏加载界面的实现

    C#开发的OpenRA游戏加载界面的实现 游戏的UI是一个游戏必备, 但是游戏的UI都是自己处理的,不能使用像Windows自带的UI。 这样游戏的UI,其实也是使用游戏的方式来显示的, 只不过使用了低帧率的方式来显示。 比如OpenRA游戏界面,就会显示如下: 游戏的界面有很多,先从一

    2024年02月01日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包