Version: 6000.3
语言: 中文
使用资产数据库管理资产
刷新资产数据库

资产数据库的内容

Unity 的资产数据库会跟踪项目中的资产,以确保原始资产源文件及其导入的对应文件保持同步。

源资产和项目

导入时,Unity 会将大多数资产类型从原始格式转换为针对运行时使用而优化的格式。原始文件称为源资产,其导入的对应文件称为工件。Unity 将源资产文件转换为工件,使其更容易在编辑器中创作,并更容易供硬件在运行时使用。

项目具有可序列化的 C# 类表示形式,该表示形式继承自UnityEngine.Object,以便您可以访问它们的属性并在代码中使用它们。例如,导入的 PNG 文件将转换为纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格的表面,以提供视觉细节。更多信息
请参阅术语表
类,继承自UnityEngine.Object. 这是你在代码中与纹理交互时访问的对象。

对于某些资产类型,源资产文件和工件之间的差异比其他资产类型更大。Unity 创建的某些类型的资产文件,例如.预制件一种资产类型,允许您存储包含组件和属性的游戏对象。预制件充当模板,您可以从中在场景中创建新的对象实例。更多信息
请参阅术语表
,.场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分批设计和构建游戏。更多信息
请参阅术语表
.asset.mat 的源文件中已经包含序列化数据,因此 Unity 生成的工件文件与源文件类似。如果 Asset Serialization Mode 设置为 Force Text 的默认设置,则这些文件类型是人类可读的,而纹理或音频等二进制文件通常不是。

每个项目文件名都是没有文件扩展名的 GUID。Unity 将这些文件分成子文件夹,每个子文件夹的名称与项目文件名的前两个字符匹配。这些项目文件包含二进制数据,并且不是设计为人类可读的。虽然了解这些文件包含资产数据库使用的数据很有用,但您无需直接查看、编辑或使用这些文件。

Unity 在导入过程中创建的元数据文件存储在原始资产文件旁边,包含资产的导入设置,并包含一个 GUID,允许 Unity 将原始资产文件与资产数据库中的工件连接起来。

您可以在“导入活动”窗口中查看为项目中的资产生成的工件。

资产数据库结构

资产数据库由以下数据库文件组成,位于Library文件夹:

  • 源资产数据库 (Library\SourceAssetDB):包含有关源资产文件的元信息,Unity 使用这些元信息来确定文件是否已被修改,从而确定是否应该重新导入文件。这包括上次修改日期、文件内容的哈希值、GUID 和其他元信息等信息。
  • 项目数据库 (Library\ArtifactDB):包含有关每个源资产的导入结果的信息。每个工件都包含导入依赖关系信息、工件元信息和工件文件列表。

注意:确保从版本控制用于管理文件更改的系统。您可以将 Unity 与最常见的版本控制工具结合使用,包括 Perforce、Git、Mercurial 和 PlasticSCM。更多信息
请参阅术语表
系统。

资产缓存和依赖关系

资产数据库跟踪每个资产的所有依赖关系并缓存工件。工件被视为缓存数据,因为 Unity 始终可以使用导入设置和项目设置广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他区域的行为方式。更多信息
请参阅术语表
保存在项目中。

资产的导入依赖关系包括可能影响导入数据的所有数据。如果导入的资产的源文件或其任何依赖项发生更改,则 Unity 会重新导入该文件并更新数据的导入版本。

有关资产依赖项的构成和刷新过程的更多信息,请参阅刷新资产数据库

如果您在团队中工作,如果资产或依赖项发生变化,每个团队成员的 Unity 副本都会执行导入过程,这可能非常耗时。Unity 为此提供了一种称为 Unity 的解决方案加速器Unity 加速器是一种外部工具,它提供资产缓存,用于保存团队导入资产的副本。加速器的目标是通过协调资产共享来加快团队合作并减少迭代时间,这样您就不需要重新导入项目的某些部分。更多信息
请参阅术语表
.有关更多信息,请参阅缓存资产

平台更改时重新导入资产

更改活动目标平台可能会导致 Unity 重新导入您的资源。当不同平台的资产导入方式不同时,通常会发生这种情况,这种情况经常发生。例如,不同的平台有不同的纹理格式一种文件格式,用于在 3D 图形硬件(如显卡或移动设备)实时渲染期间处理纹理。更多信息
请参阅术语表
,因此每个平台的纹理导入方式不同。

在不同平台上导入资产的结果将存储为单独的缓存数据片段。该平台是资产数据库用于存储 Unity 内置导入器的导入结果的哈希值的一部分。

当您更改到其他平台时,项目中尚未为新平台导入的任何资源都会被重新导入。但是,新重新导入的数据不会覆盖先前平台的旧缓存导入数据。当你切换回已导入资产的平台时,这些资产导入结果已经缓存并可供使用,从而加快切换速度。

其他资源

使用资产数据库管理资产
刷新资产数据库