# 浏览与检索
Source: https://unity.farlocus.com/assets/browse-and-inspect
在资产页中搜索、预览资产,并通过 Locus Inspector 查看磁盘数据与 Unity 实时数据
「资产」页面提供项目资产的浏览、检索与预览能力,不需要切换到 Unity 编辑器。
## 布局
页面默认为双栏布局:左侧`目录`树,右侧`当前目录`列表加预览区。点击目录面板右上角的布局按钮可切换单双栏(`切换到单栏布局` / `切换到双栏布局`):
* **双栏**:适合按目录逐层浏览,搜索范围可在`当前文件夹搜索`与`全局搜索`之间切换。
* **单栏**:目录树直接配合预览区,搜索固定为全局范围。
## 搜索
顶部搜索框支持按文件名、路径或类型检索,并支持 ScriptableObject 类型与基类检索:输入某个 ScriptableObject 的类型名(或它的基类名),可以找到该类型的全部数据资产。
* 结果数量有上限,超出时会提示`已截断到前 200 条`,此时应细化关键词继续缩小范围。
* 索引尚未就绪时会提示`索引未就绪,结果可能不全`,等[扫描](/assets/index)完成后结果才完整。
## 预览
选中资产后,预览区按文件类型展示不同内容:
* **文本资产**:脚本、Shader、JSON 等直接显示文本内容;大文件只加载开头部分,并提示已截断。
* **图片**:支持缩放查看,工具栏提供`适应`、`原始大小`与`重置缩放`;`通道`可在`颜色`与 `Alpha` 之间切换,便于单独检查透明通道,同时标注 `.meta` 中 `alphaIsTransparency` 的开关状态。PSD 文件同样可以预览。
* **场景 / Prefab 等序列化资产**:以层级树加 Inspector 的结构化视图展示,点选任意对象查看组件与字段,右上角可切换`简化视图`与`完整视图`。
* **其它二进制文件**:无法预览时显示信息卡,包含 `GUID`、`大小`、`扩展名`与`路径`。
## Locus Inspector
Locus Inspector 是一个独立的资产检查窗口。在会话中右键任意资产引用,选择`在 Locus Inspector 中打开`(或`在独立 Inspector 窗口中打开`)即可唤出。
窗口角标标明当前数据来源:
* **`磁盘`**:数据来自序列化文件本身,Unity 不在运行也能查看。
* **`Live`**:Unity 已连接时自动加载编辑器内的实时数据,此时可以直接编辑属性并写回 Unity。
未连接 Unity 时仅有磁盘数据可用;需要实时数据的操作会提示`需要 Unity 连接`。
## 与 Unity 联动
* **`在 Unity 中选中`**:预览区标题栏的这个按钮(以及资产引用右键菜单中的同名项)会让 Unity 在 Project 窗口中选中并定位该资产,需要 Unity 已连接。
* **`在默认编辑器中打开` / `在文件资源管理器中打开` / `复制路径`**:资产引用右键菜单中的常规操作,用于跳出到外部工具。
* **从 Unity 发回 Locus**:在 Unity 中选中资产或场景对象后,通过菜单 `Assets > Send to Locus` 或 `GameObject > Send to Locus` 可以把它作为引用发送到 Locus 输入框,详见[连接与插件](/unity/index)。
# 资产健康
Source: https://unity.farlocus.com/assets/health
识别失效引用、Missing Script、解析失败与 GUID 重复,并给出排查与修复思路
资产扫描完成后,「资产」页面的`资产风险`卡片会汇总项目中的四类问题。没有问题时显示`正常`;发现问题时显示`需处理`,并逐项列出数量。点击任意一项的`查看详情`会生成一份文本报告并用默认编辑器打开,其中列出受影响的资产路径。
## 四类问题
* **`失效引用`**:某个资产引用的 GUID 在项目中已不存在,常见于资产被删除、改名后 `.meta` 丢失,或协作时文件没有一起提交。表现为 Inspector 中的字段变为 Missing、运行时引用为空。
* **`Missing Script`**:GameObject 上挂载的脚本组件找不到对应脚本,原因与失效引用类似(脚本被删除、`.meta` 变化、所在包未安装)。带着 Missing Script 的对象在运行时会丢失行为。
* **`解析失败`**:文件无法按 Unity 序列化格式解析,常见于损坏的文件或残留合并冲突标记的文件。这些资产无法进入索引,它们的引用关系在搜索与分析中会缺失。
* **`GUID 重复`**:两个文件使用了同一个 GUID,通常来自带着 `.meta` 一起复制文件夹,或把包内容直接拷贝进 `Assets`。
## 为什么跨根目录的 GUID 重复最危险
GUID 是资产在项目中的唯一身份:所有引用都指向 GUID,而不是文件路径。当同一个 GUID 出现在两条路径上时,只有一条路径能生效,另一条会被覆盖。此时项目里所有指向这个 GUID 的引用,实际解析到哪个文件取决于哪条路径「赢了」。
重复发生在 `Assets` 与 `Packages` 之间时风险最高:两个根目录的导入行为相互独立,包升级、重新导入或换机器打开项目都可能让生效的一方发生变化。引用看起来没改,实际指向的却换成了另一份文件,而且往往没有任何报错。同在 `Assets` 内的重复相对容易发现,跨根目录的重复则可能潜伏很久。
## 排查与修复
1. 点击对应问题的`查看详情`,拿到受影响资产的完整清单。
2. 逐项处理:
* 失效引用与 Missing Script:在引用处重新指定目标,或恢复被删除的资产(版本控制里通常能找回,见[协作](/collaboration/index))。
* 解析失败:检查文件是否损坏或残留冲突标记,修复后重新导入。
* GUID 重复:保留一份,删除多余副本;如果两份都需要保留,删除其中一份的 `.meta` 让 Unity 重新生成 GUID,再手动把引用指回正确的目标。
3. 处理完成后点击`重新扫描`,确认对应计数归零。
也可以把报告直接交给 Agent 处理,例如在会话中要求「读取重复 GUID 报告,分析每一组的来源并修复」。Agent 能结合引用关系判断哪一份是被实际使用的。
# 资产数据库
Source: https://unity.farlocus.com/assets/index
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)。
# 修改管理与提交
Source: https://unity.farlocus.com/collaboration/changes-and-commit
暂存区管理、.meta 配对、Locus 文件标记与提交流程
## Unstaged 与 Staged
修改列表分为两区:Unstaged 是工作区的改动,Staged 是将进入下一次提交的内容。单个文件点击 `Stage` / `Unstage` 移动,多选后用 `Stage Selected (N)` 批量处理,`Stage All` 一键暂存全部。合并冲突发生时,右侧面板会切换为待解决文件列表,见[冲突解决](/collaboration/merge-conflicts)。
## .meta 配对
Unity 为每个资产生成 .meta 文件,逐一显示会淹没真正的改动。开启 `.meta` 隐藏后:
* 配对的 .meta 从列表中隐藏,数量以`已隐藏 N 个 .meta`提示。
* 暂存、取消暂存与放弃改动会自动带上配对的 .meta,主文件行上以 `.meta` 徽标提示。
* 找不到对应主文件的 .meta 标记为`孤立`并始终显示,列表顶部同时给出警告。孤立 .meta 通常意味着资产被删除或移动时 .meta 没有同步处理,值得检查一下。
## Locus 标记文件
带有 `Locus` 徽标(`Locus/Design`、`Locus/Memory`、`Locus/Skill`、`Locus/Reference`)的文件是 Agent 本身的知识或配置文件。默认情况下,除了 `user_preference` 外的记忆与理解在项目层级上共享;如无需将其纳入项目的版本控制,建议将其加入 .gitignore 文件中。
放弃这类文件的改动时会额外警告:放弃后会丢失对应的知识库、Memory 或配置改动。
## 平台限制跳过
Windows 上部分路径无法暂存(保留设备名、以句点或空格结尾的路径段等,多见于从其他系统同步来的仓库)。这类文件会单独列出并注明原因;`Stage All` 自动跳过它们、继续处理其余改动,跳过数量在结果中提示。
## 提交
Staged 区有文件后出现 `Commit` 按钮,点击打开提交窗口:
1. 窗口标题显示提交目标分支。
2. 填写提交标题,可补充可选的详细说明。
3. 也可以点击标题输入框旁的 AI 按钮,根据已暂存内容生成提交信息。生成结果建议人工过目:AI 概括的是「改了什么」,「为什么改」往往需要你补充。
提交后图谱即时刷新。要撤销一笔提交,可在图谱中右键该提交使用 `Soft Reset` 或 `Revert Commit`,见[协作页总览](/collaboration/index);会话内 Agent 修改的撤回见[修改与撤销](/sessions/changes-and-undo)。
## 放弃改动
右键文件选择 `Discard Changes` 放弃改动:已跟踪文件恢复到上次提交的状态,未跟踪文件被直接删除。操作不可撤销,确认弹窗会说明影响范围。
# 协作
Source: https://unity.farlocus.com/collaboration/index
面向 Unity 项目的图形化 Git 工作区
「协作」页面是内置的图形化 Git 工作区:查看历史、管理分支、暂存提交、审查差异与解决冲突都在同一页面完成。Agent 的修改与你的手工修改在这里统一走版本控制流程。
## 首次使用:Git 初始化
当前项目还不是 Git 仓库时,页面显示初始化入口。`Git 初始化`一键完成仓库创建,自动写入针对 Unity 项目的 .gitignore 与 Git LFS 配置;`Perforce (P4) 初始化`暂不支持,SVN 同样在计划中。Git 的 user.name 或 user.email 未配置时会弹出补录窗口,补录前无法提交。
## 页面分区
* **左侧边栏**:`LOCAL`(本地分支)、`REMOTE`(远程分支)、`STASHES`、`TAGS` 与 `SUBMODULES` 分组。
* **历史图谱**:提交历史的图形视图。`// WIP` 行代表工作区尚未提交的变更;滚动到底部自动加载更多提交。
* **修改列表**:Unstaged 与 Staged 两区,见[修改管理与提交](/collaboration/changes-and-commit)。
* **diff 区**:点击任意文件(提交、Stash、Unstaged/Staged 中的都可以)预览差异,Unity 资产自动进入语义视图,见[语义差异](/collaboration/semantic-diff)。
* **底部命令行**:支持直接输入标准 Git 指令,或用自然语言向 AI 下达指令。
## 提交右键操作
右键图谱中的提交:
* **`Create Branch…`**:从该提交创建分支。
* **`Soft Reset` / `Mixed Reset` / `Hard Reset`**:将当前分支重置到该提交。`Hard Reset` 会丢失所有未提交的更改,执行前需要确认。
* **`Revert Commit`**:生成一笔反向提交来撤销该提交的变更。
* **`Checkout Branch` / `Checkout Detached HEAD`**:切换到该提交上的分支,或以分离 HEAD 方式检出。
## 分支与 Stash
* 双击非当前分支直接切换;双击尚无本地分支的远程分支,会创建本地跟踪分支并检出。
* 分支右键提供 `Merge into Current`、`Rebase Current onto This`、`Rename Branch…`、`Delete Branch`、`Copy Branch Name`。
* Stash 右键提供 `Apply Stash`、`Pop Stash`、`Drop Stash`。基准提交尚未加载进图谱的 stash 会标记 `Unanchored`,仅显示在左侧列表中,继续加载历史后回到图中。
## 布局与显示模式
修改列表右上角的三个按钮:`列表视图` / `层级视图`切换、`.meta` 文件隐藏开关、`横向布局` / `纵向布局`切换。
## Git 历史搜索
图谱工具栏的`搜索历史`打开「Git 搜索」窗口:按`文件`(文件名匹配,可`启用正则表达式`)、`作者`与日期范围筛选。结果覆盖提交与 stash,上限 1000 条,超出时提示只显示前面的匹配结果。点击结果在图谱中定位;目标不在已加载范围内时会提示位于当前图范围之外。
# 冲突解决
Source: https://unity.farlocus.com/collaboration/merge-conflicts
冲突状态下的操作限制与字段级三路合并
merge、rebase、cherry-pick、revert 或应用 stash 产生冲突时,协作页进入冲突处理状态,直到全部文件解决完毕。
## 冲突期间的限制
存在未解决冲突时,右键菜单中的其他 Git 操作(分支、提交、Stash 等)被禁用,并提示`存在未解决冲突,操作已禁用`。右侧面板切换为待解决文件列表:.meta 冲突默认隐藏(可展开显示),底部提供`继续` / `跳过` / `中止`。`中止`会丢弃当前冲突处理进度,把工作区恢复到操作开始前的状态。
## 字段级三路合并
点击冲突文件进入解决界面,Unity YAML 资产提供`结构化`视图:
* 三方对照:`当前版本`(你所在分支的改动)、`传入版本`(对方的改动)、`共同基线`(两边的共同起点,`显示基线`可开关)。应用 stash 产生的冲突中,对侧一列为`暂存改动`。
* 点击来源列中的字段值即完成该字段的选边;也可以用`当前对象都用 X`、`当前分组都用 X`、`所有字段都用 X` 批量选边。
* 只有双方都改动了同一字段才需要选择,仅一侧修改的字段自动解决;`仅显示冲突`可以过滤掉无关内容。
* 底部实时显示还需选择的字段数。选择在写回前只是暂存,点击`应用结构化结果`才真正写入文件;未应用就离开会丢弃这些选择。
`原始文本`标签页保留传统的按冲突块逐块选边,适合非结构化文件或需要手工改写的情况。文件在 Locus 外部被修改后,块选择会被禁用,需在下方直接手动编辑结果。
## 与手工编辑冲突标记相比
在文本编辑器里处理 Unity YAML 冲突,要在 `<<<<<<<` 标记之间比对大段序列化数据:一个字段的取舍夹在几十行上下文中,误删一行就可能破坏文件结构。字段级合并把选择粒度从「这几行用谁的」换成「这个字段用谁的值」,写回由 Locus 完成,避免了错切字段边界、残留冲突标记这类手工风险;对象层级与组件归属在界面中保持可见,判断「该用谁的」也更有依据。
需要基于全部代码上下文做判断的复杂冲突(例如双方重构了同一段逻辑的 C# 文件),仍然可以在底部命令行让 AI 参与分析,或回退到`原始文本`视图手工处理。
# 语义差异
Source: https://unity.farlocus.com/collaboration/semantic-diff
Unity 资产的对象级差异视图与文本视图
Scene、Prefab 这类 Unity 资产以 YAML 文本序列化,编辑器里一次简单操作往往对应成片的行级改动,直接读文本 diff 很难看出到底改了什么。语义差异把 YAML 解析成 Unity 对象树,按对象和字段对比,以接近 Inspector 的方式展示结果。
## 双视图
Unity 资产的差异预览提供`语义`与`文本`两个标签页:
* **`语义`视图**:左侧层级树列出发生变化的对象(新增、删除、修改分色标注),右侧按组件分组显示字段级的前后值。默认只显示有变化的字段,`显示未变化字段`可展开全部。
* **`文本`视图**:传统行级 diff,`对照`按钮切换上下排列与并排显示。核对 YAML 原文,或处理语义视图未覆盖的场景时使用。
大文件解析需要一点时间,加载进度按获取文件内容、计算差异、解析资源、构建语义模型四个阶段显示。
## 支持的资产类型
Scene(.unity)、Prefab(.prefab)、Material(.mat)、动画与动画控制器(.anim / .controller)、ScriptableObject 等 .asset 文件,以及物理材质、渲染纹理等其他以 YAML 序列化的资产。组件字段按 Inspector 中的分组展示,例如 Transform 的变换、ParticleSystem 的主模块 / 发射 / 形状。非 YAML 资产与二进制文件回退为文本 diff 或不提供预览。
## 一个对照例子
把 Prefab 里某个物体的位置从 (0, 0, 0) 移到 (0, 2.5, 0):
* 文本 diff:先在十几行 `m_LocalPosition`、`m_LocalRotation` 相关的 YAML 上下文里找到 `y: 0` 变成 `y: 2.5` 的那一行,再顺着文块向上确认这段数据属于哪个物体。
* 语义 diff:直接显示该物体 Transform 组件位置字段的前后值,一眼可读。
## 原理
Locus 将差异两侧的 YAML 各自解析为 Unity 对象树,按对象在文件中的持久标识配对,再对配对的对象逐字段比较。展示的因此是「哪个对象的哪个字段从 A 变成 B」,而不是「第几行文本不同」:改动规模不影响可读性,GameObject 层级与组件归属也始终可见。
会话聊天中的文件变更预览、[资产页](/assets/browse-and-inspect)的资产检查使用同一套解析展示,三处看到的字段结构一致。
# 插件与视图
Source: https://unity.farlocus.com/extensions/plugins-and-views
插件的安装、管理与自定义视图面板
插件把 Agent 定义、规则(Rule)、技能(Skill)、视图(View)和项目依赖打包成可安装扩展,安装后在 Locus 中统一使用和更新。「插件」与「视图」两个顶部标签页分别管理它们。
## 插件能装什么
* **Agent 定义**:新的 Agent 角色及其系统提示词。
* **Rule**:注入 Agent 上下文的行为规则。
* **Skill**:沉淀稳定工作流、检查项和工具使用规则的执行组件,Agent 在特定任务中按固定流程执行,详见[技能与参考](/knowledge/skills-and-references)。
* **View**:在 Locus 中运行的自定义面板,见下文。
* **项目依赖**:声明插件所需的 Unity Package、程序集或资产,安装时可对照检查。
## 安装的三种途径
* **`插件 Hub`**:浏览注册表中的插件,支持搜索、`安装`、`更新`、`Star`。`GitHub 登录`用于提高 release 元数据请求额度,并支持私有 GitHub 仓库。
* **`从链接导入插件`**:粘贴仓库、release 或 zip 链接直接安装。
* **`导入本地插件`**:选择本地的插件 zip 或目录。
## 作用域:App 级与项目级
安装时选择`安装位置`:
* **`安装到 App`**:对本机所有项目生效,适合通用工作流。
* **`安装到项目`**:只对当前项目生效(需要先选择项目),适合与特定项目强绑定的技能和视图,可随项目仓库分发给团队。
## 更新、禁用与卸载
在`已安装`列表或插件详情中操作:有新版本时显示`更新`;`停用`临时移除插件的组件而保留文件;`卸载`彻底删除。插件详情页显示其`组件`构成、`位置`与兼容性要求(最低 Locus 版本)。
## 自定义注册表
插件 Hub 默认使用官方注册表,团队可以自建:在 Hub 的`注册表`配置中`新增`条目,填写`名称`、`地址`(owner/repo 或完整地址)、`分支`与`路径`。适合在组织内部分发未公开的插件。
## 视图
视图(View)是通过 Locus 自身前端运行的自定义项目编辑器面板:Agent 可以把 Vue 界面、运行脚本和 Unity 属性数据组合为一个 View package,作为独立工具运行,例如关卡配置表编辑器、技能数值面板。
* **查看**:顶部「视图」页列出当前工作区的全部视图,点击名称即可打开;部分视图需要 Unity 编辑器连接。
* **创建**:在会话中输入 `/view` 并描述需求,Agent 会进入 View 工作流创建或更新视图。
* **整理**:拖拽条目调整顺序或移入文件夹,右键条目可新建文件夹、重命名、移动或删除。由插件安装的视图随插件管理,需卸载插件后才能删除。
* **列表入口**:「设置 → 显示」的`会话列表中显示视图`可让视图入口出现在会话页左侧。
## 从会话创建与发布插件
在会话中输入 `/plugin` 加上需求,Agent 会进入插件工作流,创建或更新插件清单、组件目录和发布材料。发布到注册表:先在插件页面完成 `GitHub 登录`,再让 Agent 创建插件仓库并向注册表发起 Pull Request,合并后其他用户刷新插件页即可安装。
# Locus for Unity
Source: https://unity.farlocus.com/index
规模化地提升游戏开发的效率,将创作者从繁琐的事务性工作中解放出来
## 概览
`Locus for Unity`是一个面向Unity项目的**开源**AI Agent。
* **编辑器内操作**:编写C#代码、读入并修改Unity对象与资产,完成完整功能开发流程
* **运行时分析与调试**:自主操作并捕获运行时状态,协助你修复BUG、优化性能
* **自动化知识系统**:自动将对话需求总结成设计文档,并将项目理解保存在长期记忆中
* **可视化版本管理**:提供可视化的版本管理界面,支持Unity YAML资产的语义化差异分析与冲突处理
* **多种模型支持**:支持订阅帐号登录,并兼容多种LLM API能力
在会话界面中审阅文件修改
通过图形化界面进行版本管理
编辑知识文档,配置上下文注入方式
语义化地分析YAML文件的修改
语义化地处理合并时冲突
词法与语法检索配置