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:远程加载路径,在哪里下载远程内容和目录

注意:

  • 因为在发布应用程序时,默认设置会自动将 AB 包放入 SteamingAssets 文件夹中,一般情况下,不要去修改本地构建和加载路径默认值,否则可能需要自己移动资源在 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.pswp.cn/web/82890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

aws(学习笔记第四十三课) s3_sns_sqs_lambda_chain

文章目录 aws(学习笔记第四十三课) s3_sns_sqs_lambda_chain学习内容&#xff1a;1. 整体架构1.1 代码链接1.2 整体架构1.3 测试代码需要的修改1.3.1 unit test代码中引入stack的修改1.3.2 test_outputs_created代码中把错误的去掉 2. 代码解析2.1 生成dead_letter_queue死信队…

Python训练营打卡Day43

kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 进阶&#xff1a;并拆分成多个文件 config.py import os# 基础配置类 class Config:def __init__(self):# Kaggle配置self.kaggle_username "" # Kaggle用户名self.kaggle_key &quo…

hive 3集成Iceberg 1.7中的Java版本问题

hive 3.1.3 集成iceberg 1.7.2创建Iceberg表报错如下&#xff1a; Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/iceberg/mr/hive/HiveIcebergStorageHandler has been compiled by a more recent version of the Java Runtime …

文本切块技术(Splitter)

为什么要分块&#xff1f; 将长文本分解成适当大小的片段&#xff0c;以便于嵌入、索引和存储&#xff0c;并提高检索的精确度。 用ChunkViz工具可视化分块 在线使用 ChunkViz github https://github.com/gkamradt/ChunkViz 如何确定大模型所能接受的最长上下文 可以从…

C++:用 libcurl 发送一封带有附件的邮件

编写mingw C 程序&#xff0c;用 libcurl 发送一封带有附件的邮件 下面是一个使用 MinGW 编译的 C 程序&#xff0c;使用 libcurl 发送带附件的邮件。这个程序完全通过代码实现 SMTP 邮件发送&#xff0c;不依赖外部邮件客户端&#xff1a; // send_email.cpp #include <i…

tensorflow image_dataset_from_directory 训练数据集构建

以数据集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 为例 目录结构 训练图像数据集要求&#xff1a; 主目录下包含多个子目录&#xff0c;每个子目录代表一个类别。每个子目录中存储属于该类别的图像文件。 例如 main_directory/ ...cat/ ...…

遨游Spring AI:第一盘菜Hello World

Spring AI的正式版已经发布了&#xff0c;很显然&#xff0c;接下来我们要做的事情就是写一个Hello World。 总体思路就是在本地搭建一个简单的大模型&#xff0c;然后编写Spring AI代码与模型进行交互。 分五步&#xff1a; 1. 安装Ollama&#xff1b; 2. 安装DeepSeek&…

华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统

目录 前言 1 快速部署&#xff1a;一键搭建Dify平台 1.1 部署流程详解 1.2 初始配置与登录 2 构建专属知识库 2.1 进入知识库模块并创建新库 2.2 选择数据源导入内容 2.3 上传并识别多种文档格式 2.4 文本处理与索引构建 2.5 保存并完成知识库创建 3接入ModelArts S…

Java优化:双重for循环

在工作中&#xff0c;经常性的会出现在两张表中查找相同ID的数据&#xff0c;许多开发者会使用两层for循环嵌套&#xff0c;虽然实现功能没有问题&#xff0c;但是效率极低&#xff0c;一下是一个简单的优化过程&#xff0c;代码耗时凑从26856ms优化到了748ms。 功能场景 有两…

Prompt Tuning:生成的模型文件有什么构成

一、为什么Prompt Tuning会生成模型文件? 1. Prompt Tuning的本质:优化可训练的「提示参数」 核心逻辑:Prompt Tuning(提示调优)是一种轻量级的微调技术,仅优化模型输入层的提示向量(Prompt Embedding)或少量额外参数,而非更新整个预训练模型的权重。生成模型文件的原…

ARM SMMUv3简介(一)

1.概述 SMMU&#xff08;System Memory Management Unit&#xff0c;系统内存管理单元&#xff09;是ARM架构中用于管理设备访问系统内存的硬件模块。SMMU和MMU的功能类似&#xff0c;都是将虚拟地址转换成物理地址&#xff0c;不同的是MMU转换的虚拟地址来自CPU&#xff0c;S…

在 Windows 系统上运行 Docker 容器中的 Ubuntu 镜像并显示 GUI

在 Windows 上安装一个 X Server&#xff08;如 VcXsrv 或 X410&#xff09;&#xff0c;Ubuntu 容器通过网络将图形界面转发到 Windows。 步骤&#xff1a; 安装 X Server&#xff1a; 推荐使用VcXsrv&#xff0c;免费开源。 安装后运行 XLaunch&#xff0c;选择&#xff1…

Vue3学习(4)- computed的使用

1. 简述与使用 作用&#xff1a;computed 用于基于响应式数据派生出新值&#xff0c;其值会自动缓存并在依赖变化时更新。 ​缓存机制​&#xff1a;依赖未变化时直接返回缓存值&#xff0c;避免重复计算&#xff08;通过 _dirty 标志位实现&#xff09;。​响应式更新​&…

【HarmonyOS 5】出行导航开发实践介绍以及详细案例

以下是 ‌HarmonyOS 5‌ 出行导航的核心能力详解&#xff08;无代码版&#xff09;&#xff0c;聚焦智能交互、多端协同与场景化创新&#xff1a; 一、交互革新&#xff1a;从被动响应到主动服务 ‌意图驱动导航‌ ‌自然语义理解‌&#xff1a;用户通过语音指令&#xff08;如…

csrf攻击学习

原理 csrf又称跨站伪造请求攻击&#xff0c;现代网站利用Cookie、Session 或 Token 等机制识别用户身份&#xff0c;一旦用户访问某个网站&#xff0c;浏览器在之后请求会自动带上这些信息来识别用户身份。用户在网站进行请求或者操作时服务器会给出对应的内容&#xff0c;比如…

深入剖析MySQL锁机制,多事务并发场景锁竞争

一、隐藏字段对 InnoDB 的行锁&#xff08;Record Lock&#xff09;与间隙锁&#xff08;Gap Lock&#xff09;的影响 1. 隐藏字段与锁的三大核心影响 类型影响维度描述DB_TRX_IDMVCC 可见性控制决定是否读取当前版本&#xff0c;或在加锁时避开不可见版本&#xff08;影响加锁…

以SMMUv2为例,使用Trace32可视化操作SMMU的常用命令详解

Trace32支持一系列的SMMU命令&#xff0c;可以帮助用户更好地配置、查看和分析SMMU。换句话说&#xff0c;就是让SMMU的配置变得可视化。 在添加SMMU实例之前&#xff0c;需要选择一个CPU来激活该SMMU实例的相关命令。Trace32让SMMU的配置可视化的本质是&#xff0c;操纵CPU读取…

将数据库表导出为C#实体对象

数据库方式 use 数据库;declare TableName sysname 表名 declare Result varchar(max) /// <summary> /// TableName /// </summary> public class TableName {select Result Result /// <summary>/// CONVERT(NVARCHAR(500), ISNULL(ColN…

CSS 预处理器与工具

目录 CSS 预处理器与工具1. Less主要特性 2. Sass/SCSS主要特性 3. Tailwind CSS主要特性 4. 其他工具PostCSSCSS Modules 5. 选择建议 CSS 预处理器与工具 1. Less Less 是一个 CSS 预处理器&#xff0c;它扩展了 CSS 语言&#xff0c;添加了变量、嵌套规则、混合&#xff0…

this.$set() 的用法详解(Vue响应式系统相关)

1. 什么是 this.$set()&#xff1f; this.$set(target, key, value) 是 Vue 2 中提供的一个方法&#xff0c;用于向响应式对象中动态添加属性&#xff0c;确保新加的属性同样是响应式的。 2. 为什么需要它&#xff1f; Vue 2 的响应式系统基于 Object.defineProperty&#…