C# 代码分析总开关
基于 Roslyn 语言服务的 C# 语义分析:组件按需下载,并加载 Unity 生成的解决方案。所有code_* 工具都依赖此开关。
开关旁实时显示服务状态:准备组件中 → 下载组件 → 调用 Unity 生成工程文件中 → 启动分析服务中 → 加载项目中 → 代码分析就绪;出错时显示具体错误信息。分析结果异常或项目结构大改后,可点击重启重启分析服务并重新加载项目。会话页输入框上方的 C# 代码分析状态指示同样能查看状态并重启。
简单原理
Unity 项目的 C# 代码里,同名方法、字段随处可见,纯文本搜索无法区分Player.Reset() 与 Enemy.Reset()。语言服务把整个解决方案真正编译一遍,理解每个符号的类型与归属,因此 Agent 能拿到语义级精确的引用列表和签名信息,改代码前后也能立即得到编译器诊断,减少凭记忆猜 API 造成的错误。代价是首次启动需要下载组件并加载项目,大项目加载需要一些时间。
Roslyn 工具
逐项开关,关闭的工具会从 Agent 的工具列表中完全移除。总开关关闭时,以下工具无论开关状态如何都不会提供给 Agent:code_symbol_search:在整个工作区内搜索 C# 符号(类、方法、字段)。code_goto_definition:解析符号的声明位置,包括其他程序集与 package。code_find_references:语义级精确查找符号的全部代码引用。edit/write 诊断:Agent 修改 Unity C# 文件后,自动返回有上限的文件级错误、警告与项目字符串引用检查,构成”改完即验证”的回路。code_diagnostics:不切到 Unity 即可获取编译器与分析器的错误和警告;file 模式同时校验 tag、layer、场景、Resources、Input 字符串是否存在于项目配置。code_hover:查询符号的精确签名、类型与文档(IDE 悬停信息),避免 Agent 凭记忆猜 API。Unity 分析器(UNT*):注入 Microsoft.Unity.Analyzers,为code_diagnostics提供 Unity 特化诊断,并压制对 Unity 代码具有误导性的通用 C# 提示。切换后会自动重启分析服务。
资产侧工具
把 C# 符号桥接到 Unity 资产数据与项目配置,不依赖 Roslyn 服务:unity_code_usages:查询脚本或成员在场景、预制体、资产中的序列化使用,包括挂载点、UnityEvent 绑定、序列化字段与 AnimationEvent。代码侧的”查找引用”看不到这些资产里的使用点,删改脚本前让 Agent 先查一遍,可以避免破坏场景中的绑定。该工具依赖资产数据库,见资产页面。
代码与 Unity 分组的热更新与编译、Unity 连接、测试标签,见 Unity 执行与编译与热更新。