
本文介绍了 Roslyn 分析器如何帮助您在 Unity 中调试和改善游戏代码的质量。
Roslyn 分析器是一种代码分析工具,它使用 Roslyn 编译平台的 API 实时分析 C# 代码。分析器可以根据一组预定义规则提供代码改进建议、警告或错误。它作为 Microsoft Visual Studio 和 Microsoft Visual Studio Code 的插件,是对这两种代码编辑器中 IntelliSense 功能的补充。
Roslyn 分析器以 IntelliSense 提供的建议、广告完成次数和可用 API 相关信息为基础,提供额外的工具以分析和确定代码中的潜在问题。此外,你还可以获得使用 Roslyn 编译平台 API 进行修复的建议。
Roslyn 分析器在执行标准以及在违反代码约定时发出警告方面非常有用。此外,它们通常可以帮助修复这些代码错误或风格漏洞。
Visual Studio自带许多默认分析器,这些分析器是Roslyn开源代码仓库的一部分,也是学习此方法调试详情的好资源。
注意:本文的大部分内容仅适用于 Windows。Roslyn分析器也可用于macOS的Visual Studio,但与Windows相比,对检查它们的支持是有限的。

上图视频展示了 Roslyn 分析仪的典型用途。在本例中,通过对代码的分析,发现了未使用的变量。因为变量计数以绿色箭头下划线表示,所以개발자者已意识到这一问题。单击它会显示问题和包含修复选项的链接。在视频中,개발자者根据建议选择删除未使用的变量。
除了绿色的松鼠外,你还会看到红色或灰色的点。这些不同的符号表示问题的安全级别,或问题对代码的严重性。

如上表所示,每个分析器都有用户可配置的严重性级别。

Roslyn 分析器有多种,但 Visual Studio 也预装了一些。您可以在两个地方调整这些内置分析器的设置。对于本地版本的Visual Studio,可通过Tools > Options > Text Editor > C# > Code Style > General调整默认设置。您可以使用上图所示对话框更改严重性级别。

上图是一个简单的代码类。省略号(一行三个点)位于第 7 行中的 pos 字母 p 和 o 下,而第 11 行的 if 语句则表示建议。距离下的绿色吻合表示警告,第 11 行的两个 xPo 实例下的红色吻合表示错误。警告和错误也将显示在Errors List窗口中。

您会发现,显示内置分析器设置的图示在仅重构与代码块首选项建议之间切换:更喜欢大括号。仅重构会在 if 语句下隐藏省略号。
如果建议使用大括号,并将鼠标悬停在省略号上,则会看到一个显示潜在修复链接的面板。单击此按钮将显示另一个具有可用选项的面板。这里,我们只有一个选项,给代码加上大括号。上图显示了这一序列。
如果你想确保特定项目的代码风格,可以添加项目附带的 .editorconfig 文件。这可能是在众多开发者组成的大型团队中执行商定的代码风格规则的有效方法。
.editconfig 文件允许您通过 Tools > Options > Text Editor > C# 覆盖 Visual Studio 版本中的设置。如果需要,您甚至可以将多个 .editorconfig 文件嵌套到根目录下,将一个放在子文件夹中。然后,子文件夹中的对象将覆盖根文件夹中的对象。
下几节将概述如何添加.editorconfig文件。

在代码文本窗口中更改包含的分析器的严重性级别。

右键单击 Solution Explorer 并选择 New Item。在下一个面板中,选择 Installed > C# > General editorconfig File (default ) 。
另一个选项是从Tools > Options > Text Editor > C#面板的设置中选择Generate .editorconfig文件(如配置内置分析器下的图像所示 ) 。

现在,您有了.editorconfig文件,Visual Studio(Windows版本)会在引擎盖下显示文本文件的可编辑视图。对此文件的更改将影响保存 .editorconfig 的文件夹和任何子文件夹中的 C# 脚本。

你可以将功能添加到预装的 Roslyn 分析器中来扩展功能。Analyzer 以 NuGet 包或 Visual Studio 扩展(VSIX 文件)的形式安装。请访问 www.nuget.org 了解 NuGet 包的安装过程。StyleCop.Analyzers是一种很常见的方法,它可以检查代码库中的风格问题。
使用 Package Manager 控制台通过 Tools > NuGet Package Manager > Package Manager 控制台在 Visual Studio 中安装该包。每个 Analyzer 包的 www.nuget.org 页面都显示有粘贴到 Package Manager 控制台的命令。甚至有一个方便的按钮可以将文本复制到剪贴板。

分析器程序集已安装,并显示在 Solution Explorer 中的 References > Analyzers 下。

另一种选择是安装作为 VSIX 扩展提供的分析器。在 Visual Studio 中,选择 Extensions > Manage Extensions。
如果您知道扩展的名称,可以使用搜索字段进行查找,或者直接搜索“analyzer”。上图显示了所选的 Comment Analyzer。单击下载以安装分析器扩展,选择确定以关闭对话框,然后关闭Visual Studio的所有实例以启动VSIX安装程序。
选择 修改 以开始安装。安装完成后,选择 Close 并重新打开 Visual Studio。

如果要检查是否安装了扩展,请选择 Extensions > Manage Extensions。在 Manage Extensions 对话框中,选择左侧的 Installed 类别,然后按名称搜索扩展。

本文主要介绍Visual Studio自带的内置Roslyn分析器,但您也可以构建自己的分析器。使用.NET编译器平台构建的分析器可以显著提高团队代码的质量。
随着分析器的制作经验不断丰富,你会发现它们如何帮助你的团队在语法、重复编辑、新库使用指南等编码问题上提高工作效率。
Microsoft制作的其他优秀资源包括如何创建自己的C# Roslyn分析器的操作指引和关于Roslyn分析器的YouTube视频。
Unity中的调试
从以下文章中获取有关调试 Unity 项目的更多技巧:
高级技术电子书
Unity 提供了许多高级指南来帮助专业开发者优化游戏代码。创建C#风格指南:编写更简洁的代码,扩展行业专家关于如何创建代码风格指南的建议,以帮助你的团队开发简洁、可读和可扩展的代码库。
另一个深受用户欢迎的指南是70多个技巧来提高Unity的生产力。它包含许多节省时间的技巧,可用于改进 Unity 2020 LTS 的日常聚合工作流程 - 即使是经验丰富的开发人员也可能错过这些技巧。
在Unity最佳实践中心查找Unity的所有高级电子书和文章。