Unity의 Roslyn 분석기 및 소스 제너레이터 사용 가이드
이 문서에서는 Unity에서 Roslyn 분석기와 소스 제너레이터를 사용하는 방법을 설명하고, 활용 및 응용 예제도 포함합니다.
개요
Roslyn 분석기는 코드 스타일과 품질을 검사하는 도구입니다. Unity 프로젝트에서 자동으로 코드를 분석하고, 사용자 정의 규칙을 적용하여 최상의 코딩 관행을 유지하는 데 도움을 줍니다. 소스 제너레이터는 컴파일 과정 중에 새 코드를 생성할 수 있는 기능을 제공합니다.
요구 사항
- Visual Studio 또는 JetBrains Rider와 같은 IDE를 사용해야 합니다.
- Unity는
System.Text.Json
네임스페이스의 6.0.0 프리뷰 버전만 지원합니다.
소스 제너레이터 설정
- 프로젝트 생성
Visual Studio에서 .NET Standard 2.0을 타겟으로 하는 .NET Standard 라이브러리 프로젝트를 만듭니다. - NuGet 패키지 설치
Microsoft.CodeAnalysis NuGet 패키지를 설치합니다. - C# 파일 생성
새 C# 파일을 작성하고 아래 코드를 추가합니다.
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Text;
using System.Text;
namespace ExampleSourceGenerator
{
[Generator]
public class ExampleSourceGenerator : ISourceGenerator
{
public void Execute(GeneratorExecutionContext context)
{
// ...
}
public void Initialize(GeneratorInitializationContext context) { }
}
}
- 빌드 및 파일 복사
릴리스용 소스 제너레이터를 빌드한 후, 생성된 DLL 파일을 Unity의 Assets 폴더에 복사합니다. - 플러그인 인스펙터 설정
인스펙터에서 플랫폼과 레이블을 설정합니다. "RoslynAnalyzer"라는 레이블을 생성하고 할당합니다.
예제 스크립트 작성
아래 코드를 사용하여 Unity에서 소스 제너레이터를 테스트합니다.
using UnityEngine;
public class HelloFromSourceGenerator : MonoBehaviour
{
// ...
}
이 스크립트를 게임 오브젝트에 추가한 후 플레이 모드를 시작합니다. 콘솔에서 소스 제너레이터가 생성한 메시지를 확인할 수 있습니다.
분석기 범위 설정
어셈블리 정의 파일을 사용하여 특정 코드 영역만 분석하도록 설정할 수 있습니다. 분석기는 이러한 정의 파일이 있는 폴더에서만 적용됩니다.
분석기 설치 및 테스트
- NuGet에서 분석기 다운로드
ErrorProne.NET.CoreAnalyzers 라이브러리를 다운로드하여 필요한 DLL 파일을 Unity 프로젝트의 에셋 폴더에 추가합니다. - 플러그인 설정
분석기를 Unity에서 인식할 수 있도록 설정합니다. - 테스트 코드 작성
아래 코드를 사용하여 분석기 적용을 테스트합니다.
using System;
using UnityEngine;
public class RethrowError : MonoBehaviour
{
void Update()
{
// ...
}
}
규칙 집합 파일 설정
고유한 규칙 집합 파일을 작성하여 분석기에서 경고와 오류를 처리하는 방법을 설정할 수 있습니다. 주요 단계는 다음과 같습니다.
- 새로운 .ruleset 파일 생성
- 규칙 정의 및 적용
- Unity에서 재컴파일
이 과정을 통해 각 어셈블리에 대해 규칙을 적용할 수 있습니다.
결론
Unity의 Roslyn 분석기와 소스 제너레이터를 통해 코드를 더 효율적으로 관리하고 품질을 높일 수 있습니다. 다양한 예제를 통해 실제적인 활용 방안을 익히고, 개발 프로젝트에 적용해 보시기 바랍니다.