版本:Unity 6 (6000.0)
语言:English
创建和使用源代码生成器
创建规则集文件

安装和使用现有的分析器或源代码生成器

此示例使用 ErrorProne.NET.CoreAnalyzers 库演示如何从 NuGet 安装代码分析器或源代码生成器。

  1. 使用“下载包”按钮将库下载为 .zip 文件。
  2. 解压缩 .zip 文件的内容。
  3. 在解压缩的文件夹中,找到包含分析器的 .dll 文件。在此示例中,导航到 errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs。所需的的文件应位于此文件夹中,名为 ErrorProne.NET.Core.dllErrorProne.Net.CoreAnalyzers.dllRuntimeContracts.dll
  4. 将这些文件移动到 Unity 项目的 Assets 文件夹或 Assets 文件夹内的任何嵌套文件夹中。为此,可以转到 Assets > 导入新资源 并为这三个文件中的每一个选择 .dll,或通过设备的文件浏览器将它们复制到项目的 Assets 文件夹中。
  5. 在 Unity 中的资源浏览器内点击 .dll 文件以打开插件检查器窗口。
  6. 在插件检查器一个 Unity 窗口,显示有关当前选定的游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
    参见 术语表
    窗口内
    • 为插件选择平台标题下,禁用任意平台
    • 包含平台标题下,禁用编辑器独立版
  7. 在插件检查器窗口的资源标签标题下,点击蓝色标签图标以打开资源标签子菜单。
  8. 创建并分配一个名为 RoslynAnalyzer 的新标签。为此,在资源标签子菜单的文本输入窗口中键入 RoslynAnalyzer 并按回车键。此标签必须与示例完全匹配,并且区分大小写。创建第一个分析器的标签后,它会显示在资源标签子菜单中可用标签的列表中。您可以点击菜单中标签的名称将其分配给其他分析器。

Unity 识别 RoslynAnalyzer 标签并将带有此标签的资源视为 Roslyn 分析器或源代码生成器。当您将标签分配给分析器时,Unity 会重新编译脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以任何您喜欢的方式响应用户输入。 更多信息
参见 术语表
,并在分析器范围内分析这些脚本中的代码,并根据分析器中的规则进行分析。与分析器位于同一程序集定义中的任何脚本都在该分析器的范围内。对于 Assets 文件夹根目录中的分析器,Unity 会认为项目中的所有文件都在范围内。有关范围的更多信息,请参阅上面分析器范围

要测试您的分析器是否正常工作,请按照以下示例操作。如果您已正确安装分析器,则 ErrorProne.NET 分析器在分析示例中的代码时会发出警告。

创建一个名为 RethrowError.cs 的新脚本文件。将以下代码复制到此脚本中并保存文件。

using System;
using UnityEngine;

public class RethrowError : MonoBehaviour
{
    void Update()
    {
        try
        {
            DoSomethingInteresting();
        }
        catch (Exception e)
        {
            Debug.Log(e.Message);
            throw e;
        }
    }

    private void DoSomethingInteresting()
    {
        throw new System.NotImplementedException();
    }
}

保存文件后,Unity 会重新编译脚本并在脚本的代码上运行任何适用的分析器。当 ErrorProne.NET 分析器正确安装后,它会在控制台窗口一个 Unity 编辑器窗口,显示 Unity 或您自己的脚本生成的错误、警告和其他消息。 更多信息
参见 术语表
中针对上述代码发出以下警告。

Assets\RethrowError.cs(14,23): warning EPC12: 可疑的异常处理:仅在异常块中观察到 e.Message。

Assets\RethrowError.cs(15,19): warning ERP021: 错误的异常传播。使用 throw; 代替。

其他资源

创建和使用源代码生成器
创建规则集文件