Unity 6.3
0 онлайн 46 гостей 3 в системе
Вход

Установка и использование существующего анализатора или генератора источников

В этом примере используется библиотека ErrorProne.NET.CoreAnalyzers для демонстрации установки анализаторов кода или генераторов исходных текстов из NuGet:

  1. Загрузите библиотеку как файл .zip с помощью кнопки Загрузить пакет.
  2. Извлеките содержимое файла .zip.
  3. В извлеченной папке найдите файлы .dll, содержащие анализаторы. В этом примере перейдите к errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs. Требуемые файлы должны находиться в этой папке, именуемой ErrorProne.NET.Core.dll, ErrorProne.Net.CoreAnalyzers.dllи RuntimeContracts.dll.
  4. Переместите эти файлы в папку Assets или любую папку, вложенную в папку Assets, в вашем проекте Unity. Для этого либо перейдите в Ассеты > Импортировать новый ассет и выберите .dll для каждого из трех файлов, либо скопируйте их в папку Assets вашего проекта с помощью браузера файлов вашего устройства.
  5. Нажмите на файл .dll внутри Asset Browser внутри Unity, чтобы открыть окно Плагин Inspector.
  6. В окне Плагина Inspector:
    • В заголовке Выберите платформы для плагина отключите Любая платформа.
    • В соответствии Включить платформы заголовок, отключить Редактор и Автономный.
  7. Под заголовком Asset Labels в окне Плагина Inspector нажмите на синюю метку, чтобы открыть подменю Asset Labels.
  8. Создайте и назначьте новую метку под названием RoslynAnalyzer. Чтобы сделать это, введите RoslynAnalyzer в окно ввода текста в подменю Метки активов и нажмите Return. Эта метка должна точно соответствовать примеру и учитывать регистр букв. После создания метки для первого анализатора, она появится в списке доступных меток в подменю Метки активов. Вы можете нажать на название метки в меню, чтобы назначить ее другим анализаторам.

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 установлен правильно, он вызывает следующие предупреждения в окне Консоли об вышеуказанном коде:

Assets\RethrowError.cs(14,23): warning EPC12: Suspicious exception handling: only e.Message is observed in exception block.

Assets\RethrowError.cs(15,19): warning ERP021: Incorrect exception propagation. Use throw; instead.

Дополнительные ресурсы