当前位置:首页 >> 技术栈专业化分层 >> 【Unity】Addressables资源管理笔记,win10 rtm

【Unity】Addressables资源管理笔记,win10 rtm

cpugpu芯片开发光刻机 技术栈专业化分层 4
文件名:【Unity】Addressables资源管理笔记,win10 rtm 【Unity】Addressables资源管理笔记 【Unity】Addressables资源管理笔记

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

一、快速实现

安装Addressables插件

把对象添加到组

1)打开AddressablesGroups面板

window→AssetManagement→Addressables→Grounps

2)建立环境预制体到组

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

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

加载对象

简单的资源加载

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("加载失败");}};} 二、加载方法

根据路径加载

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("加载失败");}}

根据标签加载

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

指定预制体加载

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

加载多个资源

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

加载创建与卸载

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

远程加载

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,自己写配置和依赖

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接