Addressables基础知识

2023-07-23  本文已影响0人  SeanLink

安装

image.png

查看AA文件

image.png

创建资源组


image.png

打包资源


image.png

打包到的路径


image.png

具体在Library下面的com.unity......./aa文件夹里面


image.png

手动生成物体

using UnityEngine.AddressableAssets;
public AssetReference rePrefab;
Addressables.InstantiateAsync(rePrefab, Random.insideUnitSphere * 3, Quaternion.identity);

资源路径简化

image.png

简化后


image.png

根据名字加载指定资源(先简化资源)

Addressables.InstantiateAsync("remote", Random.insideUnitSphere * 3, Quaternion.identity);

更改资源组加载策略

远程加载目录配置 注意端口号


image.png

资源配置加载方式


image.png

远程打包,远程加载

加载方式更改

image.png

制作补丁包

image.png
image.png

需要先设定工程


image.png

资源加载完毕后回调

Addressables.InstantiateAsync("remote", Random.insideUnitSphere * 3, Quaternion.identity).Completed += LoadCompleted;

private void LoadCompleted(UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle<GameObject> obj)
{

}

await关键字

GameObject go = await Addressables.InstantiateAsync("remote", Random.insideUnitSphere * 3, Quaternion.identity).Task;

资源加载与释放
本地服务器测试


image.png

将RemoteLoadPath改成http://[PrivateIpAddress]:[HostingServicePort]

Addressables.InitializeAsync() - 初始化Addressables

Addressables.LoadAssetAsync() - 加载资源

Addressables.LoadAssetsAsync() - 加载多个资源

Addressables.InstantiateAsync() - 实例化资源

Addressables.Release() -释放资源

Addressables.ClearDependencyCacheAsync() - 清除依赖缓存

Addressables.ClearResourceLocators() - 清除资源定位器

Addressables.DownloadDependenciesAsync() - 下载依赖资源

Addressables.GetDownloadSizeAsync() - 获取需要下载的资源大小

Addressables.GetDownloadSizeAsync() - 获取需要下载的资源大小

Addressables.GetResourceLocationsAsync() - 获取资源的定位器

Addressables.GetWebUri() - 获取Web URI

Addressables.UpdateCatalogsAsync() - 更新目录

Addressables.UpdateResourceLocatorsAsync() - 更新资源定位器

Addressables.MergeDependenciesAsync() - 合并依赖

Addressables.Preload() - 预加载

Addressables.UnloadSceneAsync() - 卸载场景

Addressables.UnloadAssetAsync() - 卸载资源

Addressables.UnloadAllAssets() - 卸载所有资源

Addressables.UnloadUnusedAssets() - 卸载未使用的资源

Addressables.ClearCache() - 清除缓存

Addressables.GetDownloadSizeAsync() - 获取需要下载的资源大小

Addressables.GetResourceLocationsAsync() - 获取资源的定位器

Addressables.GetWebUri() - 获取Web URI

Addressables.InitializeAsync() - 初始化Addressables

Addressables.LoadAssetAsync() - 加载资源

Addressables.LoadAssetsAsync() - 加载多个资源

Addressables.InstantiateAsync() - 实例化资源

Addressables.Release() -释放资源

Addressables.ClearDependencyCacheAsync() - 清除依赖缓存

Addressables.ClearResourceLocators() - 清除资源定位器

Addressables.DownloadDependenciesAsync() - 下载依赖资源

Addressables.GetDownloadSizeAsync() - 获取需要下载的资源大小

Addressables.GetResourceLocationsAsync() - 获取资源的定位器

Addressables.GetWebUri() - 获取Web URI

Addressables.UpdateCatalogsAsync() - 更新目录

Addressables.UpdateResourceLocatorsAsync() - 更新资源定位器

Addressables.MergeDependenciesAsync() - 合并依赖

Addressables.Preload() - 预加载

Addressables.UnloadSceneAsync() - 卸载场景

Addressables.UnloadAssetAsync() - 卸载资源

Addressables.UnloadAllAssets() - 卸载所有资源

Addressables.UnloadUnusedAssets() - 卸载未使用的资源

Addressables.ClearCache() - 清除缓存

Settings

2.1 AssetGroup

Group提供三种压缩方式:无压缩、LZ4、LZMA。LZ4包体大小中等,解压较快,可以只解压部分资源;LZMA包体较小,但解压资源较慢,只能将资源全部解压。通常选择LZ4。


image.png image.png image.png

这三个选项表示打包时,是否将资源的Address、GUID、Label写入包体中。对于有分包更新需求的情况下,建议都勾选上。


image.png

Internal Asset Naming Mode:如何为内部asset命名

Asset Load Mode、Asset Provider、Asset Bundle Provider通常不用修改,这三个选项用于控制asset的加载方式、AB包的获取方式。如果存在自定义的处理方式,可自行选择。


image.png

2.2 AddressableAssetSettings

Profile定义了各种路径参数,切换不同的路径以灵活映射到的路径。(修改路径后需要重新Build资源后才能生效,因为locator的下载路径是在Build时序列化到本地的。体验上不太舒服~~)


image.png image.png image.png image.png image.png image.png

Addressables提供了三种Editor下资源加载方式:Use the Asset database(Asset database加载)、Simulate groups(模拟Group处理)、Use existing build(加载实际包体资源)


image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读