当前位置: 首页 > java >正文

Addressable-配置相关

1、Profile 概述窗口配置

主要用于配置Addressable打包(构建)加载AB包时使用的一些变量,这些变量定义了

  1. 在哪里保存打包(构建)的AB包
  2. 运行时在哪里加载AB包

可以添加自定义变量,以便在打包加载时使用,之后在设置 组中打包和加载路径相关时,都是使用这里面的变量

打开Profiles窗口

  1. Window > Asset Management > Addressables > Profiles
  2. 在AddressableAssetSettings中打开
  3. 在Addressables Groups窗口中打开

Profiles窗口参数相关

  • BuildTarget:构建目标,可以在这里设置平台,默认是激活的平台
  • LocalBuildPath:本地构建路径,默认在项目的 Library 库文件夹中
  • LocalLoadPath:本地加载路径,在哪里加载本地已有的资源
  • RemoteBuildPath:远程构建路径
  • RemoteLoadPath:远程加载路径,在哪里下载远程内容和目录

注意:

  • 一般情况下,不要去修改本地构建和加载路径默认值,否则可能需要自己移动资源在 StreamingAssets 中
  • 当针对不同平台远程分发内容时,通过多个配置文件最方便,如果想要最终的发布包包含所有内容,那么一个默认配置就够了

  • ProFile:概述文件
  • Variable:变量(所有概述文件通用)
  • Build and Load Path Variables:构建加载路径变量(所有概述文件通用)

Profiles变量语法

所有的变量类型都是string字符串类型,可以在其中填写一些固定的路径或值来决定路径,还可以使用两个语法指示符让原本的静态属性变成动态属性

[]:方括号,可以使用它包裹变量,在打包构建时会计算方括号包围的内容,比如:

  • 使用自己的变量[BuildTarget]
  • 使用别的脚本中变量[UnityEditor.EditorUserBuildSettings.activeBuildTarget]

在打包构建时,会使用方括号内变量对应的字符串拼接到目录中

{}:大括号,可以使用它包裹变量,在运行时会计算大括号包围的内容,比如:

使用别的脚本中变量{UnityEngine.AddressableAssets.Addressables.RuntimePath}

注意:方括号和大括号中使用的变量一定是静态变量或者属性。名称、类型、命名空间必须匹配
比如在运行时 UnityEditor编辑器命名空间下的内容是不能使用的

2、AddressableAssetSettings

在导入Addressables包之后 创建的那些就是配置文件
AddressableAssetsData文件夹下的内容都是本质为ScriptableObject的数据配置文件

我们可以在工程中对Addressables相关内容进行设置,他们会影响我们的打包方式等等相关内容

AddressableAssetsData(可寻址资源数据)

  • AssetGroups(资源组):当我们创建一个组就会多一些相关数据配置文件
  • AssetGroupTemplates(资源组模板,主要是对资源组的一些默认设置)
    • Packed Assets:打包资源数据配置
  • DataBuilders(数据生成器,这些内容决定了在不同模式下,资源打包和使用的方式)
    • BuildScriptFastMode:构建脚本快速模式
    • BuildScriptPackedMode:构建脚本打包模式
    • BuildScriptPackedPlayMode:构建脚本打包播放模式
    • BuildScriptVirtualMode:构建脚本虚拟模式
  • AddressableAssetSettings(可寻址资源设置)
  • DefaultObject(默认对象)

AddressableAssetSettings 参数讲解

  • Profiles In Use:可以在选择使用的是哪一套配置文件
  • Manage Profiles:点击打开管理配置文件窗口

  • Send Profile Events:启用分析器事件,启用后可以在 Event Viewer 窗口查看 Addressable 相关信息
  • Log Runtime Exceptions:记录运行时加载相关的异常

目录相关设置,将资源的地址映射到其物理位置

  • Player Version Override:重写用于指定远程目录名称的时间戳,如果不设置默认使用时间戳作为远程目录命名
  • Compress Local Catalog:在压缩的 AssetBundle 文件中生成目录,可以压缩大小,但是会增加生成和加载的时间(减少流量)
  • Build Remote Catalog:构建远程目录,勾选后会出现新选项
    • Build & Load Paths:在何处生成和加载远程目录,从列表中选择一个配置文件路径,如果要分别设置生成路径和加载路径,请选择<custom>,仅在启用生成远程目录时可见
    • Build Path:远程构建路径,在何处构建远程目录,通常,应该使用 RemoteBuildPath 配置文件变量。仅当将生成和加载路径设置为<custom>时显示
    • Load  Path:远程加载路径,用于访问远程目录的 URL,通常,应该使用 RemoteLoadPath 配置文件变量。仅当将生成和加载路径设置为<custom>时显示
    • Path Preview:路径预览

在编辑器中进入播放模式时,选择 Addressable 系统如何加载资产,这些脚本处理默认的构建进程,并提供不同的方式在编辑模式下访问数据。

可以在 AddressableAssetData/DataBuilders 文件夹中找到这些脚本,如果要为他们自定义脚本,那么对应的脚本需要是 BuildScriptBase 的子类,并且继承 IDataBuilder

  • Use Asset Database:使用资源数据库
  • Simulate Groups:模拟组
  • Use Existing Build:使用现有版本
  • Default Build Scripts:默认生成脚本

  • Packed Asset:打包资源,定义可用于创建新租的模板列表,创建新模板时,必须先将其添加到此列表中,然后才能使用它
  • Addressables 包含一个模板,其中包含默认构建脚本使用的模式,可以在 AddressableAssetData/AssetGroupTemplates 文件夹中找到该模板

3、Packed Assets 打包资源数据配置

确定如何处理组中的资源,比如可以指定生成 AB 包的位置和包压缩相关的设置

打包资产参数讲解

  • Build & Load Paths:配置文件路径对,定义可寻址构建系统在哪个路径为此组创建内容,以及可寻址系统在运行时在何处加载这些内容
  • Build Path:打包路径 
    • LocalBuildPath:本地路径
    • RemoteBuildPath
  • Load Path:加载路径
    • LocalLoadPath
    • RemoteLoadPath
  • Path Preview

  • Asset Bundle Compression:AB 包的研所方式,默认时 LZ4,通常时最有效的选项,建议使用
    • Uncompressed:不压缩,包较大,不推荐
    • LZ4:压缩,相对 LZMA 大一点,建议使用,用什么解压什么,内存占用低
    • LZMA:压缩最小,解压慢,用一个资源要解压所有
  • Include in Build:包含在构建中,是否在内容生成中包含此组中的资源,如果取消勾选,那么在选择打包时,不会打包改组的内容
  • Use Asset Bundle Cache:使用 AB 包缓存,是否缓存远程分发的包
  • Asset Bundle CRC:是否在加载前验证 AB 包的完整性
    • Disabled:永远不检查完整性
    • Enabled, Includeing Cached:检查完整性,包括缓存也检查
    • Enabled, Excludeing Cached:检查完整性,不包括缓存也检查
  • Include Address in Catalog:是否将地址字符串包含在目录中。如果不使用地址字符串在组中加载资源,则可以通过不包括他们来减小目录的大小(其实就是资源名加载)
  • Include GUIDs in Catalog:是否在目录中包含 GUID 字符串。必须包含 guid 字符串才能使用资产参考。如果不使用 AssetReference 或 GUID 字符串在组中加载资源,则可以通过不包含他们来减小目录的大小
  • Include Labels in Catalog:是否在目录中包含标签字符串。如果不适用标签在组中加载资源,则可以通过不包含这些资产来缩小目录的大小
  • Internal Asset Naming Mode:如何在内部命名目录中的资源
    • Full Path:全路径
    • FileName:文件名
    • GUID:资源的 Guid 字符串
    • Dynamic:Addressables 根据组中的资源选择最小的内部名称
  • Cache Clear Behavior:确定安装的应用程序何时从缓存中清除 AB 包
    • Clear When Space is Needed In Cache:在缓存中需要空间时清除(只会更新变更的资源)
    • Clear When new Version Loaded:在加载新版本时清除(全部清除下载新的)
  • Bundle Mode:打包模式,如何将此组中的资产打包到包中
    • Pack Together:创建包含所有资产的单个包(一个组是一个包)
    • Pack Seperately:为组中的每个主要资产创建一个包,如精灵图片中的精灵图片被包装到一起,添加在组中的文件夹中的资产也打包在一起(一个组中的同一类型的资源打一个包)
    • Pack Together by Label:为共享相同标签组合的资产创建一个包
  • Asset Load Mode:资源加载模式
    • Requested Asset And Dependencies:请求的资源和依赖项
    • All Packed Assets And Dependencies:所有包中的资源和依赖项

创建自定义的配置

在 Project 窗口右键或者点击 + 号

Create -> Addressables -> Group Template -> Blank Group Template

4、Addressables Hosting 可寻址托管窗口

一般的资源服务器需要将其搭建为 http 服务器,这样才能进行资源的上传和下载,而 Unity 为了简化本地测试这一过程,提供了快捷搭建 http 服务器的工具 Addressables Hosting

通过它可以将我们的本机模拟为一台远端服务器来进行远端发布加载测试,可以帮助我们快速的进行远程打包下载的相关测试。简单理解就是把本地作为一台资源服务器

可寻址托管窗口参数

  • Create:
    • Local Hosting:本地托管,通过本机模拟加载相关内容
      • Service Name:服务器名称
      • Service Type(ID):服务器类型
      • Port;端口号(一般不自己设置,避免和其他应用发生冲突)
      • Upload Speed(kb/s):上载速度
      • Enable:是否启用,启用后会自动分配端口号
      • Hosting Service Variables:托管服务变量
      • Variable Name:变量名
      • Value:值
    • Custom Service:自定义服务 

我们可以使用 Local Hosting 这些变量名来编辑 Addressables Profiles 中发布和加载相关路径:http://[PrivateAddress]:[HostingServiceProt]/[BuildTarget]

注意事项

Addressable Hosting 窗口创建的本地服务器有时候会失效,可以使用第三方工具,让本机变为一个 http 服务器模拟远程加载,比如 hfs

http://www.xdnf.cn/news/12702.html

相关文章:

  • 操作系统:分页存储管理方式(精简版、含例题)
  • 源码级拆解:如何搭建高并发「数字药店+医保购药」一体化平台?
  • 6.7 打卡
  • AtCoder Beginner Contest 408 D-F 题解
  • JDK8安装与配置
  • 探索Python融合地学:斗之气七段(运算符)
  • 冰箱智能化升级方案:WT3000A离在线AI语音模组赋能AI在线对话功能
  • Cline核心说明文档
  • 基于Java的离散数学题库系统设计与实现:附完整源码与论文
  • mysql整体架构
  • 在 Windows 11 或 10 上将 Visual Studio Code 添加到系统路径
  • C++学习-入门到精通【15】异常处理深入剖析
  • (附实例代码及图示)混合策略实现 doc-doc 对称检索
  • FreeRTOS任务调度过程vTaskStartScheduler()任务设计和划分
  • redis分布式锁
  • Python训练营打卡DAY47
  • 4G物联网模块提升智慧农业的自动化生产效率
  • 【CSS-5】深入理解CSS复合选择器:提升样式表的精确性与效率
  • 第三章支线二 ·函数幻阶:语法召唤与逻辑封印
  • A Execllent Software Project Review and Solutions
  • 函数式接口实现分页查询
  • AI开发 | 生成式AI在企业软件中的演进形态:从嵌入式到智能体
  • nodejs:用 nodemailer 发送一封带有附件的邮件
  • 【JavaSE】集合学习笔记
  • C++ 对 C 的兼容性
  • 基于Scala实现Flink的三种基本时间窗口操作
  • 跨平台资源下载工具:res-downloader 的使用体验
  • Vue3中computed和watch的区别
  • OpenLayers 导航之运动轨迹
  • 深入剖析 RocketMQ 中的 DefaultMQPushConsumerImpl:消息推送消费的核心实现