Version: Unity 6.0 (6000.0)
언어 : 한국어
소스 제너레이터 생성 및 사용
Additional files for Roslyn analyzers and source generators

기존 분석기 또는 소스 제너레이터 설치 및 사용

다음 예시에서는 ErrorProne.NET.CoreAnalyzers 라이브러리를 사용하여 NuGet에서 코드 분석기 또는 소스 제너레이터를 설치하는 방법을 설명합니다.

  1. Download package 버튼을 눌러 라이브러리를 .zip 파일로 다운로드합니다.
  2. .zip 파일의 압축을 풉니다.
  3. 추출된 폴더 내에서 분석기가 포함된 .dll 파일을 찾습니다. 이 예시에서는 errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs로 이동합니다. 필수 파일은 ErrorProne.NET.Core.dll, ErrorProne.Net.CoreAnalyzers.dll, RuntimeContracts.dll이라는 폴더에 있어야 합니다.
  4. 이 파일을 Unity 프로젝트의 Assets 폴더 또는 Assets 폴더 내에 있는 폴더로 이동합니다. 이렇게 하려면 Assets > Import new asset으로 이동하여 세 파일 각각에 .dll을 선택하거나 기기의 파일 브라우저를 통해 프로젝트의 Assets 폴더에 복사합니다.
  5. Unity 내부의 Asset Browser에서 .dll 파일을 클릭하여 Plugin Inspector 창을 엽니다.
  6. Plugin Inspector 창에서 다음을 수행합니다.
    • Select platforms for plugin 아래에 있는 Any Platform을 비활성화합니다.
    • Include Platforms 아래에 있는 EditorStandalone을 비활성화합니다.
  7. Plugin Inspector 창의 Asset Labels 아래에 있는 파란색 레이블 아이콘을 클릭하여 Asset Labels 하위 메뉴를 엽니다.
  8. RoslynAnalyzer라는 새 레이블을 생성하고 할당합니다. 이렇게 하려면 Asset Labels 하위 메뉴의 텍스트 입력 창에 RoslynAnalyzer를 입력하고 Return을 누릅니다. 이 레이블은 예시와 정확히 일치해야 하며 대소문자를 구분합니다. 첫 번째 분석기에 대한 레이블을 생성하면 사용 가능한 레이블 리스트가 Asset Labels 하위 메뉴에 표시됩니다. 메뉴에서 레이블 이름을 클릭하여 다른 분석기에 할당할 수 있습니다.

Unity는 RoslynAnalyzer 레이블을 인식하고 이 레이블이 있는 에셋을 Roslyn Analyzers 또는 소스 제너레이터로 취급합니다. 분석기에 레이블을 할당하면 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.

추가 리소스

소스 제너레이터 생성 및 사용
Additional files for Roslyn analyzers and source generators