【Unity】Addressables资源管理笔记

news2025/3/1 22:23:09

【Unity】Addressables资源管理笔记

Addressables是一种用于管理资源的系统。允许以一种灵活的方式加载、卸载和管理资源,无论是场景、预制件、材质、纹理、音频剪辑等。

一、快速实现

  1. 安装Addressables插件

  2. 把对象添加到组

    1)打开AddressablesGroups面板

    window→AssetManagement→Addressables→Grounps

    2)建立环境预制体到组

    打包预制体后直接拖拽到默认的组(Default Local Group)下

    这里可以看见预制体自动添加了一个寻址路径,拿到这个路径就可以动态加载该资源

  3. 加载对象

    简单的资源加载

        void Update()
        {
            if (Input.GetKeyDown(KeyCode.C))
            {
                AddAsset();
            }
        }
        void AddAsset()
        {
             Addressables.LoadAssetAsync<GameObject>("Assets/Prefab/Environment_Prefab.prefab").Completed +=
                (asyncOperationHandle) =>
                {
                    if (asyncOperationHandle.Status == AsyncOperationStatus.Succeeded)
                    {
                        Instantiate(asyncOperationHandle.Result);
                    }
                    else
                    {
                        Debug.Log("加载失败");
                    }
                };
        }
    

二、加载方法

  1. 根据路径加载

     void AddAsset()
        {
            asyncOperationHandle = Addressables.LoadAssetAsync<GameObject>("Assets/Prefab/Environment_Prefab.prefab");
            asyncOperationHandle.Completed += AsyncOperationHandle_Completed;
        }
        void AsyncOperationHandle_Completed(AsyncOperationHandle<GameObject> asyncOperationHandle)
        {
            if (asyncOperationHandle.Status == AsyncOperationStatus.Succeeded)
            {
                Instantiate(asyncOperationHandle.Result);
            }
            else
            {
              Debug.Log("加载失败");
            }
        }
    
  2. 根据标签加载

        [SerializeField] AssetLabelReference labelReference;
        void AddAssetForAssetLabelReference()
        {
            Addressables.LoadAssetAsync<GameObject>(labelReference).Completed +=
                (asyncOperationHandle) =>
                {
                    if (asyncOperationHandle.Status == AsyncOperationStatus.Succeeded)
                    {
                        Instantiate(asyncOperationHandle.Result);
                    }
                    else
                    {
                        Debug.Log("加载失败");
                    }
                };
        }
    
  3. 指定预制体加载

     [SerializeField] AssetReference assetReference;
     void AddAssetForAssetReference()
        {
            assetReference.LoadAssetAsync<GameObject>().Completed+=
                    (asyncOperationHandle) =>
                    {
                        if (asyncOperationHandle.Status == AsyncOperationStatus.Succeeded)
                        {
                            game= asyncOperationHandle.Result;
                            Instantiate(game);
                        }
                        else
                        {
                            Debug.Log("加载失败");
                        }
                    };
          
        }
    
  4. 加载多个资源

        void AddAssetForAssetLabelReferences()
        {
            Addressables.LoadAssetsAsync<GameObject>(labelReference, (addAesst) => { Instantiate(addAesst); })
                .Completed +=
                (asyncOperationHandle) =>
                {
                    if (asyncOperationHandle.Status == AsyncOperationStatus.Succeeded)
                    {
                        Debug.Log("加载成功");
                    }
                    else
                    {
                        Debug.Log("加载失败");
                    }
                };
        }
    
  5. 加载创建与卸载

       
    GameObject game;
        void AddAssetForAssetInstantiateAsync()
        {
              assetReference.InstantiateAsync().Completed += (asyncOperation) => game = asyncOperation.Result;
        }
        void ClearInstantiateAsset()
        {
            //该方法只适用于InstantiateAsync创建的资源
            assetReference.ReleaseInstance(game);
            GC.Collect();
        }
    
  6. 远程加载

    1)开启远程

    window→AssetManagement→Addressables→Setting

    勾选BuildRemoteCatalog

    Build&Load Paths 选择Remote

选择资源组Addressables Asset Grounp

Build&Load Paths 选择Remote

2)修改配置文件

window→AssetManagement→Addressables→Profiles

Remote.BuildPath是创建路径

Remote.LoadPath是远程地址

[BuildTarget]是发布是类型文件夹,比如webgl和StandaloneWindows64

这里可以创建多个配置文件

3)发布

发布后可以在对应的文件夹下找到资源文件

网发布文件的时候,需要将整个文件夹一起拷贝到地址下

这里可以从配置文件中看到

配置文件地址通常在StreamingAssets→aa下

包括:settings.json和catalog.json

最后建议还是使用AssetBundle,自己写配置和依赖

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

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

相关文章

本地创建一个虚拟机,并且能够连接到外网

1、从官网下载虚拟机 2、详细的安装教程 点击这里 其中这里的获取&#xff0c;我们店自动IP地址获取就行了&#xff0c;DNS也是自动获取就行了。 4、注意事项 4.1 linux命令:vim: command not found无法使用解决方案, 点击这里

tensorflow-gpu轮子安装

文章目录 简介一、虚拟环境二、安装 TensorFlow-GPU&#xff08;最新&#xff09;版本三、安装 TensorFlow-GPU&#xff08;指定&#xff09;版本四、打印信息4.1、检查当前TensorFlow版本号4.2、检查当前TensorFlow是否支持GPU4.3、检查当前PyTorch是否支持GPU4.4、选择Tensor…

漏洞复现--金蝶云星空 CommonFileServer 任意文件读取

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

redis 网课笔记

缓存 缓存雪崩 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库。 解决方案 给不同的key的TTL添加随机值利于Redis集群提高服务的可用性 哨兵模式、集群模式给缓存业务添加降级限流策略 ngxin或spring cloud gateway给业务…

Python中如何使用pandas和matplotlib库绘制图表

目录 一、引言 二、pandas基础 三、matplotlib基础 四、pandas与matplotlib的结合 五、高级图表与深度分析 结论 本文详细探讨了Python中两个重要的库——pandas和matplotlib&#xff0c;它们在数据处理和可视化中的应用。通过实例代码&#xff0c;我们深入了解了如何利用…

WhatsApp Business账户被封?常见封号原因解析

目前&#xff0c;作为全球即时通讯领域的重要平台之一的WhatsApp已成为企业在营销和与客户沟通时的首选工具。但是长时间、高强度的营销行为很容易导致WhatsApp Business账户突然被封禁&#xff0c;无法再使用账号。即使后续再去进行申诉&#xff0c;要求官方解封该账户&#x…

网络安全(黑客)-小白自学笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

如何进行回馈式直流负载测试

回馈式直流负载测试是将负载连接到电源输出端&#xff0c;以模拟实际工作条件&#xff0c;然后测量电源在不同负载条件下的性能表现&#xff0c;包括直流负载、电源供应器、电流表和电压表等。确保这些设备能够满足测试需求&#xff0c;将电源供应器的正极连接到直流负载的输入…

PyQt界面开发的终极指南

文章目录 前言一、PyQt 简介二、PyQt 与 Qt 的蒙娜丽莎三、PyQt 布局管理器3.1、简介3.2、项目实战3.2.0、添加伸缩项 layout.addStretch&#xff1a;控制布局中组件之间的间距。3.2.1、垂直布局管理器 QVBoxLayout&#xff1a;控件按照从上到下的顺序排列3.2.2、水平布局管理器…

无忧企业文档2.1.8版本新增文档级权限控制

无忧企业文档是一款针对企业用户提供在线文档、协同编辑、知识管理的基础化办公工具&#xff0c;产品采用B/S构架。功能覆盖场景包括&#xff1a;在线文档的私有化部署、团队协同、知识管理、在线文档识别的扩展、文档权限化管理等等场景。本次2.1.8版本新增了文档级权限控制核…

第七届“蓝帽杯”决赛圆满收官 | 赛宁网安全程提供技术保障

10月29日&#xff0c;由公安部网络安全保卫局、教育部教育管理信息中心、中国教育协会指导&#xff0c;中国人民公安大学主办&#xff0c;奇安信科技集团股份有限公司协办&#xff0c;南京赛宁信息技术有限公司提供技术支持的2023第七届“蓝帽杯”全国大学生网络安全技能大赛决…

搜维尔科技:scalefit生物力学人体工学软件分析!

人体工程学分析 21加载参数和头像显示 识别(隐藏的)健康风险 根据DGUV交通灯进行生物反馈(DIN/ISO) 实时应力分析 三维空间可视化 静态/动态肩载 用左/右赋值加载输入 腰椎间盘压缩计算 距离和定时器显示 带有运动跟踪的化身/视频叠加 外骨骼与CAD工作站仿真 CSV原始…

【基于卷积和Transformer:多光谱图像光谱重建】

Spectral Reconstruction From Satellite Multispectral Imagery Using Convolution and Transformer Joint Network &#xff08;基于卷积和Transformer联合网络的卫星多光谱图像光谱重建&#xff09; 基于卫星多光谱&#xff08;MS&#xff09;图像的光谱重建&#xff08;S…

如何修改MinIO Share时的URL

使用Helm方式在Kubernetes中部署MinIO后。选择分享文件&#xff0c;获得的分享连接域名为K8S内部Service连接地址&#xff0c;这样的地址不可以在集群外部使用。 修改MINIO_SERVER_URL 前置条件 &#xff08;Helm部署方式&#xff09;域名需要访问到Name为minio的K8S Service…

危废废水如何处理?

危废废水的处理方法包括以下几种&#xff1a; 物理处理法&#xff1a;通过物理作用分离和去除废水中不溶解的悬浮物、胶体物质等。常用的方法有&#xff1a;重力分离、离心分离、反渗透、气浮等。化学处理法&#xff1a;通过化学反应和传质作用来分离、转化、破坏和消除废水中…

使用treq库下载

首先&#xff0c;我们需要导入treq库&#xff0c;这是一个用于Python的HTTP客户端库。代码如下&#xff1a; import treq然后&#xff0c;我们需要设置代理服务器。代码如下&#xff1a; proxy treq.ProxyManager("jshk.com.cn:8120")接下来&#xff0c;我们需要创…

antd renderFormItem AutoComplete结合防抖导致防抖失效的解决办法

业务背景 我们有一个需求是在用户输入用例名称的时候&#xff0c;系统根据名称去匹配公共用例库中的用例模块展示在下拉框中&#xff0c;然后用户可选择想要的模块导入其中的用例&#xff1a; 但是如果用户每输入一个字符就去调用接口查询的话&#xff0c;这样就太频繁了&…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v8.0版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架&#xff0c;超轻量级、高度提炼&#xff0c;一套API优雅支持 UDP 、TCP 、WebSocket 三种协议&#xff0c;支持 iOS、Android、H5、标准Java、小程序、Uniapp&#xff0c;服务端基于Netty编写。 工程…

vivo发布“蓝心千询”自然语言对话机器人

&#x1f989; AI新闻 &#x1f680; vivo发布“蓝心千询”自然语言对话机器人 摘要&#xff1a;vivo今日发布了“蓝心千询”自然语言对话机器人&#xff0c;基于蓝心大模型。蓝心千询可以进行知识信息的快速问答&#xff0c;文学创作、图片生成&#xff0c;甚至还能编写程序…

CV论文阅读大合集

YearNameAreamodeldescriptiondrawback2021 ICMLClip &#xff08;Contrastive Language-Image Pre-training&#xff09;contrastive learning、zero-shot learing、mutimodel用文本作为监督信号来训练可迁移的视觉模型CLIP’s zero-shot performance, although comparable to…