本文内容
资产缓存
资产缓存存储每个目标平台的运行优化产品资产、生成产品资产的流程作业信息以及产品依赖性等资产的其他信息。资产缓存位于项目根目录下的 Cache
目录中。
重要:不要将资产缓存添加到源代码控制中。由于资产缓存是通过自动流程持续更新的,因此很难在源控制中进行管理。从源代码控制中使用资产缓存还会导致资产时间戳问题,而资产时间戳是用来确定资产是否需要重新处理的。
不要直接编辑产品资产。如果资产处理器重新处理源资产,对产品资产所做的任何更改都会被覆盖。要更改资产,请编辑上游文件、源资产文件或
.assetinfo
sidecar 文件。
资产缓存内容
资产缓存有三个部分:资产数据库、资产目录和资产缓存本身。
资产数据库
资产数据库仅供资产处理器使用。资产数据库是一个开发时间数据库,包含有关资产、任务、资产生成器和扫描目录的详细信息。它包含资产处理器所需的所有信息,以确定哪些资产已被处理,哪些资产需要处理。
有了资产数据库中的信息,资产处理器就可以在尚未处理完所有资产时关闭。下一次启动时,资产处理器就会利用这些信息找出已经处理过的资产。
资产目录
资产目录是产品资产和产品依赖关系的运行时目录。资产目录包含资产数据库信息的子集;运行时所需的资产信息。资产浏览器使用资产目录来查找您为项目所需的磁盘上的运行时产品资产。
缓存中的 “资产目录 ”XML 文件中的信息与运行时项目中的信息不同。在开发过程中,O3DE 编辑器和游戏启动器使用 assetcatalog.xml
文件跟踪资产。在捆绑发布版本中,目录中唯一可用的资产是
资产捆绑包中专门挂载的资产。每个资产包都包含一个 Delta 目录,它是资产目录的子集,包含资产包内的资产信息。当资产捆绑包被加载时,Delta Catalog XML 文件将被加载,内存中的资产目录将被扩展,以包含来自 Delta Catalog 的信息。
资产缓存
资产缓存包含资产数据库、资产目录和由 Asset Builders 生成的产品资产。
资产缓存包含主机平台的产品资产版本以及各目标平台的版本。例如,当您为 Windows 和移动平台创建一个项目时,缓存中会分别包含 Windows 和每个移动平台的资产缓存版本。如果在 Windows 上开发项目并在 Windows 上部署,则主机平台和目标平台使用相同的产品资产。
在项目的 Cache
目录中,有项目支持的每个平台的子目录。在平台目录中,有与 Asset Processor 找到源资产的每个扫描目录相对应的目录。扫描目录包含资产处理器生成的产品资产。
资产处理器假定它是对资产缓存进行更改的唯一进程。如果修改或删除资产缓存中的文件,包括在资产处理器未运行时删除产品资产文件,资产处理器可能不会注意到这些更改。
资产缓存在开发阶段使用,默认情况下,编辑器和游戏启动器会从资产缓存中加载资产。发布版本的默认行为是使用 捆绑资产。
注意:如果遇到无法解决的资产缓存问题,可以删除项目的Cache
目录。Asset Processor 会自动重新扫描目录,分析找到的源资产,并运行新的进程任务,重建整个资产缓存。