> ## Documentation Index
> Fetch the complete documentation index at: https://unity.farlocus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 资产数据库

> Locus 直接读取磁盘上的序列化文件为项目建立资产索引，支持增量监听与扫描调优

「资产」页面的核心是`资产数据库`。Locus 不通过 Unity 编辑器解析资产引用关系，而是直接读取磁盘上的 Unity 序列化文件，扫描 `Assets` 与 `Packages` 两个根目录，为每个资产建立节点，并记录资产之间的引用关系。资产搜索、引用分析、[资产健康检查](/assets/health)都建立在这份索引之上。

## 工作原理

Unity 为每个资产生成一个 `.meta` 文件，其中的 GUID 是该资产在项目中的唯一身份；场景、Prefab、材质等序列化文件内部通过 GUID 引用其它资产。Locus 解析这些文件，就能还原出「谁引用了谁」的完整关系网。

因为只读磁盘文件，扫描不需要 Unity 编辑器在运行，也不会占用编辑器性能。扫描结果持久化保存在本地：下次打开项目时直接加载已有索引（显示为`由持久化索引加载`），只对变化部分做校验，无需重新全量扫描。

## 扫描阶段与进度

首次选择项目时会触发一次全量扫描（[安装与配置](/overview/install-and-setup)引导流程中的一步），之后也可随时在「资产」页面点击`重新扫描`。扫描按五个阶段推进：

1. `目录扫描`：遍历 `Assets` 与 `Packages` 下的文件。
2. `.meta 解析`：读取每个资产的 GUID 与导入设置。
3. `YAML 解析`：解析场景、Prefab、ScriptableObject 等序列化内容，提取引用关系。
4. `索引写入`：把节点与引用写入本地数据库。
5. `索引校验`：核对索引与磁盘的一致性，补齐差异。

进度可以在两处查看：「资产」页面`扫描状态`卡片显示当前阶段与已完成/总量；会话输入框上方的`资产数据库`状态指示也会同步显示阶段进度。数据库整体状态分为`未索引`、`扫描中`、`已索引`、`扫描失败`与`需要重新扫描`几档；出现`需要重新扫描`时（例如索引文件失效），页面会提示重扫后才能恢复资产搜索与引用分析。

## 实时监听

`实时监听`卡片对应一个文件系统监听器，负责让索引跟上项目变化：

* **`运行中`**：检测到 `.meta` / `.asset` 等文件改动会自动增量重扫，只处理变化的文件。在 Unity 里导入资源、改引用、挪目录，索引会在几秒内跟上。
* **`已停止`**：仅在手动重扫后刷新。

卡片同时显示`待处理队列`长度与`正在处理`的文件。队列偶尔堆积属于正常现象（例如批量导入后），处理完即清空。

## 扫描强度与工作线程

`实时监听`卡片下方提供两个调节项：

* **`扫描强度`**：一个从`节能`到`全速`的滑杆，控制增量扫描的节流间隔（0 到 1000 毫秒，滑杆右侧读数实时显示当前档位与毫秒数）。`全速`响应最快但占用更多 CPU，`节能`适合在意后台开销的大型项目。
* **`工作线程`**：扫描与解析使用的并行线程数。

## 统计卡片

* **`索引规模`**：`资产数量`、`引用关系数量`、`数据库大小`与`资产大小`，反映索引覆盖的整体范围。
* **`扫描状态`**：当前状态徽标、上次扫描时间与耗时，以及上次扫描统计（`目录数`、`YAML 资产`、`新增节点`、`新增引用`、`解析失败`）。`重新扫描`按钮也在这里。
* **`实时监听`**：监听器状态、待处理队列与调节项。
* **`资产风险`**：失效引用、Missing Script、解析失败与 GUID 重复的汇总入口，详见[资产健康与风险](/assets/health)。
