DungDaj 发表于 2023-2-11 13:00

Unity 之 Addressable可寻址系统 -- 可寻址系统面板介绍 ...

概述:本篇文章带大家了解可寻址系统的目录和各个设置面板的属性介绍。若需要了解如何导入可寻址系统和可寻址系统的相关概念,可点击链接查看上一篇文章。
一,可寻址系统目录介绍

1.2 创建分组

工程到导入后就会在Window->Asset Management->Addressables看到可寻址系统的几个工具目录:


选择Groups,会弹出Addressables Groups面板:


单击上面的“创建”按钮,即可开始使用可寻址系统。
<hr/>1.2 目录介绍

创建后,会在工程Assets目录下面生成一个AddressableAssetsData资源文件夹,其中存储设置文件和用于跟踪你的 Addressables 设置的其他资产。




<hr/>二,可寻址系统设置介绍

其中最常修改的是AddressableAssetSettings - 可寻址资产设置:


<hr/>2.1 Profile - 配置文件

配置文件设置:可下拉选择可以使用的配置文件列表选择配置文件。


点击Manager Porfiles按钮可以跳转到,Addressables Profiles面板,进行设置配置文件内容。


一般可用于测试服和正式服的环境切换,这样正式服和测试服配置信息就各自独立。
<hr/>2.2 Catalog - 目录

目录设置:可寻址目录相关的设置,此设置可将资产的地址映射到其物理位置。



[*]Player Version Override: 播放器版本覆盖 覆盖用于指定远程目录名称的时间戳,若不设置,则默认使用时间戳。
[*]Compress Local Catalog: 压缩本地目录 减少目录的存储大小,但增加了构建和加载目录的时间。
[*]Optimize Catalog Siz: 优化目录大小 通过为内部 ID 创建查找表来减小目录的大小。可以增加加载目录所需的时间。
<hr/>2.3 Content Update - 内容更新

内容更新设置:控制远程内容构建和更新的设置。



[*]Disable Catalog Update on Startup: 在勾选后禁用目录更新
[*]Content State Build Path: 内容状态构建路径 可以设置默认构建脚本生成的内容状态文件路径。
[*]Build Remote Catalog: 启用以构建远程目录。 勾选启用,才有后面三项。
[*]Build & Load Paths: 构建和加载路径 可以选择一个在1.1中配置文件中的路径。
[*]Build Path: 构建路径 若使用配置文件中路径就在配置文件中设置,若使用自定义路径则选择可用的构建目录即可。
[*]Load Path: 加载路径 若使用配置文件中路径就在配置文件中设置,若使用自定义路径则选择可用的加载目录即可。
<hr/>2.4 Downloads - 下载

下载设置:影响目录和AA包的下载处理设置。



[*]Custom certificate handler: 自定义正式处理类。
[*]Max Concurrent Web Requests: 最大并发Web请求 系统会将超出此限制的请求排队。建议同时下载2~4个以达到最佳下载速度。
[*]Catalog Download Timeout: 目录下载超时时间,单位秒。
2.5 Build - 构建

构建设置:可修改所有构建相关设置。



[*]Build Addressables on Player Build: Unity构建是是否自动构建AA (Unity 2021.2或更高版本才有)

[*]Build Addressables content on Player Build: 在构建时始终构建AA包内容
[*]Do not Build Addressables content on Player Build: 在构建时不自动构建AA包,选择此模式若需要更新,则需构建之前手动构建AA
[*]Use global Settings (stored in preferences): 使用全局设置(存储在首选项中),在打开Preferences面板下的Addressables系统,如下图:





[*]Ignore Invalid/Unsupported Files in Build: 忽略构建中的无效/不受支持的文件 若启用则忽略无效和不支持文件,若不启用遇到无效文件则停止构建。
[*]Unique Bundle IDs: Bundles包唯一ID 是否在每个构建中为包生成唯一名称。
[*]Contiguous Bundles: 连续Bundle包 生成一个更有效的Bundle布局。
[*]Non-Recursive Dependency Calculation: 非递归依赖计算 当资源具有循环依赖关系时,启用此选项可缩短构建时间并减少运行时内存开销。
[*]Shader Bundle Naming Prefix: 着色器包命名前缀       给Unity着色器生成的包添加前缀。
[*]MonoScript Bundle Naming Prefix: MonoScript Bundle 命名前缀 该Bundle包确保 Unity 在任何 MonoBehavior 可以引用它们之前加载所有 Monoscript。它还减少了重复或复杂的 Monoscript 依赖项的数量,从而减少了运行时内存开销。
[*]Strip Unity Version From AssetBundles: 从 AssetBundle 中剥离 Unity 版本 是否从包头中删除 Unity 版本。
[*]Disable Visible Sub Asset Representations: 禁用可见子资产表示 如果您不直接使用子对象(精灵、子网格等),启用此选项可缩短构建时间。
<hr/>2.6 Build and Play Mode Scripts

构建和播放模式脚本:配置项目中可用的IDataBuilder脚本。如果您创建自定义构建或播放模式脚本,则必须先将其添加到此列表中,然后才能使用它。


Addressables 包包含一些构建脚本,它们处理默认构建过程并提供在 Play 模式下访问数据的不同方式。您可以在 AddressableAssetData/DataBuilders文件夹中找到这些脚本。
要添加自定义脚本,请单击+按钮并从文件面板中选择代表所需脚本的 ScriptableObject 资产。
<hr/>2.7 Asset Group Templates - 配置的组模板



定义可用于创建新组的模板列表。创建新模板时,必须先将其添加到此列表中,然后才能使用它。
Addressables包包含一个模板,其中包含默认构建脚本使用的模式。您可以在 AddressableAssetData/AssetGroupTemplates 文件夹中找到该模板。
<hr/>2.8 Initialization object list - 初始化对象列表



为项目配置初始化的对象。这些对象都是ScriptableObject的对象,需要实现IObjectInitializationDataProvider接口。可以通过创建这些对象在Addressables初始化的时候传递数据。
<hr/>2.9 Cloud Content Delivery - 云内容交付




[*]Enable Exerimental CCD Features:勾选则启用基本CCD功能
<hr/>三,可寻址系统资源组设置

在Project面板或在Addressables Groups面板选中组,即可在Inspector面板看到如下设置面板:


3.1 Content Update Restriction - 内容更新限制




[*]Update Restriction:更新的限制,可以选择:允许在发布后修改和不允许在发布后修改。
一般是远程加载的资源组设置为允许更新,本地加载的设置为不允许更新。
3.2 Context Packing & Loading - 打包和加载


[*]Bulid & Load Paths:设置此资源组的打包和加载路径,可选择使用配置文件的本地,远程,或自定义路径



Advanced Options:高级选项



[*]Asset Bundle Compression:压缩格式 可选格式:LZ4,LZMA和不压缩三种,通常使用LZ4格式进行压缩。(WebGl平台不支持LZMA压缩格式)
[*]Include In Build:是否在构建中包含此组 默认勾选,不勾选则此组内资源打不进包中。
[*]Force Unique Provider:是否为此组使用资源提供者类的唯一实例。
[*]Use Asset Bundle Cache:是否缓存远程分发的Bundle包。
[*]Asset Bundle CRC:是否加载之前验证包的完整性

[*]Disable:禁用,从不校验
[*]Enabled,Including Cached:启用,包括缓存;始终在加载前进行校验
[*]Enabled,Excluding Cached:启用,不包括缓存;仅在下次时校验


[*]Use UnityWebRequest for Local Asset Bundles:使用从该组加载本地 AssetBundle 档案UnityWebRequestAssetBundle.GetAssetBundle代替AssetBundle.LoadFromFileAsync.
[*]Request Timeout:下载远程包的超时间隔。
[*]Use Http Chunked Transfer:下载捆绑包时是否使用 HTTP/1.1 分块传输编码方法。在 Unity 2019.3以及之后的版本都已弃用。
[*]Http Redirect Limit:下载资源包时允许的重定向次数,-1 表示没有限制。
[*]Retry Count:重试失败下载的次数。
[*]Include Addresses in Catalog:是否将地址写进catalog 如果这个组内的资源不需要通过地址加载,可以取消该项来减少catalog的体积。.
[*]Include GUIDs in Catalog:是否将GUID写进catalog。 如果使用了AssetReferences,则必须勾选该选项。如果没有使用AssetReferences的方式或者用GUID作为key去加载,则可以取消勾选来减少catalog的大小。
[*]Include Labels in Catalog:是否将Label写进catalog。
[*]Internal Asset Naming Mode:在catalog里如何为资源命名

[*]Full Path:用完整路径
[*]Filename:资源的文件名
[*]GUID:用GUID串
[*]Dynamic:可寻址系统根据组内的资产选择最小的内部命名。


[*]Cache Clear Behavior:什么时候清理缓存

[*]Clear When Space Is Needed In Cache:空间不足时清理
[*]Clear When When New Version Loaded:是有新版本时清理


[*]Bundle Mode:打包模式

[*]Pack Together:组内资源打一个Bundle包
[*]Pack Separately:组内资源每一个创建一个Bundle包
[*]Pack Together By Label:组内资源根据设置标签打Bundle包


[*]Bundle Naming Mode:创建bundle的名字

[*]Filename:文件名是从组名派生的字符串
[*]Append Hash to Filename:文件名+哈希值
[*]Use Hash of AssetBundle:使用AssetBundle的哈希值
[*]Use Hash of Filename:使用文件名哈希值


[*]Asset Load Mode:资源加载模式

[*]Requested Asset and Dependencies:加载请求的资源和依赖(通常使用)
[*]All Packed Asset And Dependencies:加载所有打包的资源和依赖项


[*]Asset Provider:定义 Addressables 使用哪个 Provider 类从该组生成的 AssetBundle 加载资产。将此选项设置为来自 Bundles Provider 的 Assets,除非有自定义 Provider 实现来提供来自 AssetBundle 的资产。
[*]Asset Bundle Provider        :定义 Addressables 使用哪个 Provider 类来加载从该组生成的 AssetBundle。将此选项设置为AssetBundle Provider,除非您有自定义 Provider 实现来提供 AssetBundle。
<hr/>TODO:上一篇 --> Unity 之 Addressable可寻址系统 -- 可寻址系统概念介绍 -- 入门(一)
TODO:下一篇 --> Unity 之 Addressable可寻址系统 -- 可寻址系统使用介绍 -- 入门(三)
页: [1]
查看完整版本: Unity 之 Addressable可寻址系统 -- 可寻址系统面板介绍 ...