Unity构建详解(9)——Addressable的打包结果

这里说的Task不算是真正SBP管线里的了,而是Addressable中自定义的,包括之前的GenerateLocationListsTask和Post Processing AssetBundles都是在Addressable中的。一般使用SBP时都会用上Addressable。

【BuildLayoutGenerationTask】

这个Task是为了生成详细的打包结果,可以看到Bundle的总数、总大小,每个Bundle的大小、包含的Asset及其大小等信息,被保存在buildlayout.txt文件中。

具体是什么样的,打包一次,打开看看这个文件就知道了,不必多说。

这种写文件的Task都可以修改成多线程的

【GenerateCatalog】

Catalog是与Addressable相适配的,Addressable在初始化时就会加载Catelog文件,该文件记录了Bundle之间的依赖关系及其包含的Asset,可以认为是一个简化版的buildlayout,其只包含了运行时所需要知道的必要信息。可以根据项目需要添加新的信息。

Catalog有json文本格式和二进制格式两个版本,这里应该有一个常识,在真机上运行时的要读取的文件都要是二进制格式的,不要搞文本格式。

生成Catalog时有个是否把Catalog打入Bundle的选项,其会又走一遍打包流程,一般来说没有必要。

Catalog有优化,但Unity本身做的优化并不够,还需要单独做优化的,这本质上就是如何优化字符串内存。

如果仅仅是SBP,会生成一份Manifest文件,和BuildInt的流程相似,但该文件没有Catalog的信息多。

【GenerateLinkXml】

link.xml是代码裁剪时需要读取的文件,该文件以XML格式记录了需要保留的程序集、类型和成员。详细的在构建时再说。

  •  Link生成:
    • UnityEditor.Build.Pipeline.Utilities.LinkXmlGenerator.CreateDefault()
  • SBP中包含的Type
    • WriteResult中包含的Type
      •  linker.AddTypes(resultValue.includedTypes);
      •  linker.AddSerializedClass(writeResult.Value.includedSerializeReferenceFQN);

  • Addressable中新增的Type

    • 程序集添加:
      •  linker.AddAssemblies(new[] { typeof(Addressables).Assembly, typeof(UnityEngine.ResourceManagement.ResourceManager).Assembly });
    • Type添加
      • m_Linker.AddTypes(runtimeData.CertificateHandlerType);
      • 各种Provider的Type,包括ResourceProvider、InstanceProvider、SceneProvider、InitializationDataProvider、自定义的Provider

至此,SBP的打包介绍完毕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620980.html

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

相关文章

浮点数在内存中的存储

索引 1. 浮点数在内存中的存储2. 浮点数存的过程3. 浮点数取的过程4. 题目解析 正文开始 1. 浮点数在内存中的存储 常见的浮点数: 3.14159 , 1E10等, 浮点数家族包括 : float , double , long double类型. 浮点数的表示范围在 float.h中定义. (1E10为科学计数法表示1.0 * 2的…

openGauss学习笔记-263 openGauss性能调优-TPCC性能调优测试指导-前置软件安装

文章目录 openGauss学习笔记-263 openGauss性能调优-TPCC性能调优测试指导-前置软件安装263.1 安装jdk263.2 安装numactl263.3 安装ant263.4 安装htop工具 openGauss学习笔记-263 openGauss性能调优-TPCC性能调优测试指导-前置软件安装 本章节主要介绍openGauss数据库内核基于…

冯喜运:4.15汇市观潮:现货黄金美原油技术分析

【 黄金消息面分析】:周一(4月15日)亚市盘初,金价开盘跳涨13美元,报2357.71美元/盎司,随后延续涨势,最高触及2372.45美元/盎司,目前金价回落至2354.19美元/盎司,如果中东局势未进一步恶化&#…

第四百六十一回

文章目录 1. 概念介绍2. 使用方法2.1 静态切换2.2 动态切换 3. 示例代码4. 内容总结 我们在上一章回中介绍了"readMore简介"相关的内容,本章回中将介绍如何在程序中切换语言.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们这本章回中…

【快捷部署】017_MongoDB(6.0.14)

📣【快捷部署系列】017期信息 编号选型版本操作系统部署形式部署模式复检时间017MongoDB6.0.14Ubuntu 20.04apt单机2024-04-11 一、快捷部署 #!/bin/bash ################################################################################# # 作者:…

imx6ul uboot移植

1.添加开发板 1.解压uboot 2.复制config并修改 3.复制头文件修改 4.复制板级文件夹 5.修改里面的文件(左上角是文件名) 修改Kconfig(添加) 新建脚本 mx6ull_alientek_emmc.sh 2.进入uboot目录下 修改Makefile 编译 make mx6ull…

#新版Onenet云平台使用(ESP8266 AT指令上报数据以及公网MQTT服务器连接测试)

1.上云方式:MQTT 参考: 新版ONENET物联网开放平台ATMQTT指令连接_at指令连接onenet的mqtt-CSDN博客https://blog.csdn.net/lilbye/article/details/131770196 ESP8266-01s入门:AT指令讲解、上云与MQTT通信教程-物联沃-IOTWORD物联网https:…

transformer上手(7)—— 快速分词器

1 快速分词器 Hugging Face 共提供了两种分分词器: 慢速分词器:Transformers 库自带,使用 Python 编写;快速分词器:Tokenizers 库提供,使用 Rust 编写。 特别地,快速分词器除了能进行编码和解…

代码随想录算法训练营第二十七天|39.组合总和、40.组合总和II、131.分割回文串

39.组合总和 思路: 本题和77.组合 ,216.组合总和III的区别是:本题没有数量要求,可以无限重复,但是有总和的限制,所以间接的也是有个数的限制。 本题搜索的过程抽象成树形结构如下: 注意图中叶…

学习笔记——C语言基本概念栈和队列——(14)

本次笔记是C语言的最后学习内容。 1、栈 特点:先进后出 堆栈又名栈( stack) , 它是一种运算受限的线性表。 限定仅在表尾进行插入和删除操作的线性表。 这一端被称为栈顶, 相对地, 把另一端称为栈底。 向…

[大模型]Baichuan2-7B-chat langchain 接入

Baichuan2-7B-chat langchain 接入 这篇主要讲 Baichuan2-7B-chat 如何对接Langchain中 langchain.llms.base 的 LLM 模块,并且提供一个快捷搭建向量数据库、Agent等多功能的Langchain应用的部署方案;关于如何具体对接向量数据库和gradio的部分请参考in…

排序之归并排序

代码 先上代码,根据代码将归并排序的整个过程。 class Solution {public int[] sortArray(int[] nums) {int[] tmp new int[nums.length];merge(nums, 0, nums.length - 1, tmp);return nums;}private void merge(int[] nums, int left, int right, int[] tmp){if…