CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
如何使用CRI可寻址 [0.7.00 以下]
注意
本节中描述的使用方法是为了保持兼容性而保留的选项。
如果您使用的是CRI Addressables 0.7.00 或更高版本,请考虑参考以下内容进行迁移。

设置部署类型

请指定“Addressables”作为由 Addressables 管理的CRI资产的 DeployType。
此时,您可以在 Inspector 上为 Group 指定 Remote 或 Local。
addon4u_assetsupport_addressables_deploygroup.png
CRI Addressables 内部使用的锚定资产和 CriData 组是在导入过程中生成的。
请查看 “ CRI Addressables的构成元素 ” 了解详细信息。
构建捆绑包时, CRI资产的实际数据将根据 Group 放置在部署目的地中。
使用 CriAddressablesSetting 设置与每个组相对应的构建/加载路径。

对每个项目的设置

通过使用CRI Addressables的功能,将在项目中生成 CriAddressablesSetting 资产。
预设路径为"Assets/CriData/Settings" ,但您也可以将其移动到任意路径。
对CriAddressablesSetting资产的属性设置会在CRI Addressables中被使用。

存在CriAddressablesSetting资产时,也可以使用Project Settings窗口进行编辑。
addon4u_assetsupport_addressables_setting.png


Local 此为在"Addressables"之中,Group设置为Remote的CRI Asset所使用的一对构建/加载路径。
请选择在Addressables Profile中设置的其中一个变量。
Remote 此为在"Addressables"之中,Group设置为Local的CRI Asset所使用的一对构建/加载路径。
请选择在Addressables Profile中设置的其中一个变量。
Append Guid To Anchor 启用时,将在Anchor Asset名中添加GUID。
Anchor Folder Path 生成“Anchor Asset”的路径。
Deploy Folder Suffix 对应“Addressables”的Non-Asset CRI数据的放置路径的后缀。


预设的部署目标Group包含“Local”和“Remote”2种。
需要添加或编辑部署目标Group时,请参照 [CRI Addressables] 部署目标Group
“Append Guid To Anchor”的预设为启用。请注意,改为禁用时,需要小心处理放置在不同文件夹中的同名CRI Asset。
如果项目中可能存在相同名称(包含文件的扩展名)的CRI Asset时,建议保持启用状态。

Bundle构建

通过执行Addressables的Bundle构建,对应CRI Asset的Non-Asset CRI数据将放置于在CriAddressablesSetting中指定的构建路径下。
此时,实际配置好的文件数将在Console输出。

修改目录信息

要正常运行如 Addressables.GetDownloadSizeAsync 等获取下载大小的API时,需要在所有内容目录加载完成后调用 CriWare.Assets.CriAddressables.ModifyLocators

备注:
由于CRI Addressables是利用AssetBundle的管理机制进行CRIWARE的Non-Asset数据管理,因此在Addressables的内容目录中记录有与实际情况不符的内容。
具体而言,由于资源大小信息会写入“AssetBundle的大小”,因此此值不会包含CRIWARE的Non-Asset数据量。
所以,如果参考内容目录的信息,获取下载大小的API将返回错误的值。
要避免这种情况,需要在加载内容目录后修改其内容。
通过调用 CriWare.Assets.CriAddressables.ModifyLocators ,可以修改当前在Addressables中注册的CRI Asset相关的位置信息。

Asset的加载

无论是否存在CRI Asset,都可以使用普通的Addressables的API进行加载。
通过Addressables的API加载包含对CRI Asset依赖的场景或资产,或者CRI Asset本身时,相关的Non-Asset CRI数据将下载到缓存文件夹中。
在Addressables的API完成时,CRI的数据也将存在于缓存中。

注意
使用CRI Addressables管理的CRI Asset无法通过内置场景的直接引用来加载。