Unity 2020.2

프로그래머 툴

Unity 2020.2를 통해 스크립팅 워크플로를 개선하세요. 한층 개선된 툴을 활용하면 프로그래머의 반복 작업 시간이 단축되며, 프로젝트 최적화도 간편해집니다. 

2020.2의 새로운 기능

Unity 2020.2에서 프로그래머가 활용할 수 있는 새로운 기능과 개선된 부분을 확인해 보세요. 자세한 내용은 릴리스 노트를 확인하세요.

결정론적 컴파일로 컴파일 시간 단축

프로젝트가 복잡해지면 코드가 새로 변경될 때 컴파일 시간이 길어지며, 팀의 생산성에 악영향을 미칠 수 있습니다. Unity 2020.2에서는 C# 스크립트 컴파일 시 결정론적 컴파일 옵션을 제공합니다. 이 옵션을 사용하면 에디터에서 스크립트를 컴파일할 때 어셈블리의 공용 메타데이터가 변경되지 않은 경우 어셈블리 정의(.asmdef) 레퍼런스를 불필요하게 다시 컴파일하지 않아도 됩니다. 직접 또는 간접 레퍼런스가 많이 있는 어셈블리를 변경할 때 반복 작업 시간을 줄일 수 있어 특히 유용합니다.

자세히 알아보기

C# 8 지원

Unity 2020.2에서는 기본 인터페이스 메서드를 제외한 C# 8의 최신 기능과 개선 사항을 모두 지원합니다. 여기에는 null을 지원하는 레퍼런스 유형이 포함되어 있으므로 레퍼런스 유형 변수에 null을 할당하려 할 때마다 컴파일러에서 경고를 표시할 수 있습니다. 패턴 일치 판정이 포함된 switch 표현식을 사용하면 조건문 코드를 더 효율적으로 작성할 수 있습니다.

C# 8의 새로운 기능에 대한 개요를 모두 살펴보려면Microsoft 기술 자료를 확인하세요.

C#_8_support.cs (C#)
public static RGBColor FromRainbow(Rainbow colorBand) =>
    colorBand switch
    {
        Rainbow.Red    => new RGBColor(0xFF, 0x00, 0x00),
        Rainbow.Orange => new RGBColor(0xFF, 0x7F, 0x00),
        Rainbow.Yellow => new RGBColor(0xFF, 0xFF, 0x00),
        Rainbow.Green  => new RGBColor(0x00, 0xFF, 0x00),
        Rainbow.Blue   => new RGBColor(0x00, 0x00, 0xFF),
        Rainbow.Indigo => new RGBColor(0x4B, 0x00, 0x82),
        Rainbow.Violet => new RGBColor(0x94, 0x00, 0xD3),
        _              => throw new ArgumentException(message: "invalid enum value", paramName: nameof(colorBand)),
    };
Microsoft의 C# 8 가이드 보기

어셈블리 정의 설정으로 루트 네임스페이스 사용 가능

C#의 네임스페이스는 코드를 구성하고 다른 패키지나 라이브러리와 클래스 이름이 충돌되지 않게 방지할 수 있는 효율적인 방법입니다. 이제 asmdef 인스펙터에서 루트 네임스페이스를 새 필드로 사용할 수 있으며, Unity, Visual Studio, Rider 등에서 새 스크립트를 작성할 때 네임스페이스를 자동으로 추가하는 데 사용됩니다.

이 기능을 사용하려면 Visual Studio 및 Rider 패키지를 최신 버전으로 업데이트해야 합니다.

자세히 알아보기
멀티 스레드 변환 전후에 두 프로젝트의 순차 및 병렬 IL2CPP 변환 시간을 비교한 것입니다. 빨간색 선은 내부 데모이고 주황색 선은 외부 스튜디오의 프로젝트입니다.

빌드 컴파일 속도 향상

Unity 2020.2에서는 빌드 컴파일 시간이 대폭 단축되었습니다. 이제 머티리얼, 셰이더, 프리팹 등 코드와 무관한 부분만 변경된 경우, 플레이어 빌드 시 .NET 어셈블리에서 C++로의 IL2CPP 전환 과정을 모두 건너뜁니다. 

Unity 2020.2에서는 IL2CPP 전환 시 단일 스레드에서 멀티 스레드로 전환하여 최신 멀티 코어 프로세서를 활용하며, 위 테스트 프로젝트 데이터에 나와 있는 것처럼 전반적인 IL2CPP 플레이어 빌드 시간을 줄일 수 있습니다. 

자세히 알아보기

일관된 Time.deltaTime

Time.deltaTime 값이 일관적이지 않으면 게임플레이 도중 오브젝트 움직임이 불안정해질 수 있는데, Unity 2020.2에서는 이를 수정해 줍니다. 이제 TimeManager 인터페이스가 프레임 시간 계산의 안정성을 높일 수 있도록 리팩토링되어 게임이 안정적인 프레임 속도로 실행 중일 때 오브젝트 움직임이 훨씬 부드러워집니다. Unity 2020.2는 이러한 시간 안정성 관련 개선 기능은 iOS, macOS, PS4, Switch, tvOS, UWP, Windows, Xbox One 등의 플랫폼에서 지원되며, Vulkan 기반의 Android, Windows, Linux, XR 등에서는 추후 지원될 예정입니다. 자세한 내용은 블로그 게시글을 확인하세요.

자세히 알아보기
100~5,000개의 임포터를 처리할 때 전반적인 최적화가 12~800배 이상으로 더 빠른 것으로 나타났습니다(전반적인 개선 정도는 우측 그래프 참고).

성능 개선

Unity 2020.2에서는 네스티드 프리팹 최적화 등 정렬과 룩업 속도를 대폭 향상할 수 있는 여러 가지 최적화 기능을 제공합니다. 에디터의 스크립트된 임포터 등록 기능을 사용해 테스트한 결과 검색 결과를 최대 800배 빠르게 얻을 수 있었습니다. 또한 최적화 담당 팀에서는 Camera.main도 리팩토링하여 쿼리 소요 시간을 단축했으며, 일부 프로젝트에서는 수백 밀리초를 단축하는 결과가 나오기도 했습니다.

자세히 알아보기

Editor Coroutines 및 설정 가능한 플레이 모드 시작 옵션을 통한 더 빠른 워크플로

설정 가능한 플레이 모드 진입 옵션은 이제 실험 기능이 아니며, 사용 시에는 "Domain Reload" 및 "Scene Reload" 액션 중 하나 또는 모두를 비활성화해 플레이 모드를 시작하는 속도를 높일 수 있습니다. 프리뷰 단계가 끝난 Editor Coroutines 패키지를 사용하면 런타임 중에 MonoBehaviour 스크립트 내부의 코루틴이 처리되는 방식과 마찬가지로 에디터 내에서 반복기 메서드를 실행할 수 있습니다.

자세히 알아보기

Unity Linker를 통한 관리되는 코드 스트리핑

Unity Linker는 정적 분석을 수행하여 관리되는 코드를 스트리핑합니다. 또한 다양한 속성을 인식하며, 종속성을 식별할 수 없는 경우 사용자가 주석을 남길 수 있습니다. Unity 2020.2에서는 Mono IL Linker에 대응하도록 툴의 API가 업데이트되었습니다. Unity 2020.1 버전부터 Unity Linker는 일부 간단한 반사 패턴을 감지할 수 있으므로, link.xml 파일을 사용할 필요가 적어집니다.

자세히 알아보기

프로파일러 업데이트

이제 프로파일러 창에 차트를 추가해 성능과 관련한 정보를 더 자세히 파악하고, 기존 프로파일러 통계나 사용자가 생성한 프로파일러 통계의 컨텍스트를 확보할 수 있습니다. 또한 프로파일러 타임라인의 Flow Events에서 일련의 작업 종속성을 표시할 수 있으므로, 애플리케이션이 어떤 작업을 순서대로 처리하고 있는지 알 수 있습니다.

이제 플레이어의 렌더 및 메모리 프로파일러 통계를 시각화할 수 있습니다. 런타임 API를 사용해 기존 프로파일러 통계를 표시하고, 플레이어의 메모리, 렌더링 등의 기존 프로파일러 영역과 관련한 성능 통계를 확인하세요. 타겟 기기에서 프로젝트를 실행하며 이 데이터를 활용해 성능 HUD를 표시하거나, 필요에 따라 다른 성능 관련 툴을 만들 수도 있습니다.

자세히 알아보기

Roslyn 분석기 개선

컴파일 파이프라인에서 이제 Roslyn 분석기를 지원합니다. 따라서 반복 작업 워크플로에 영향을 주지 않고 Unity 에디터 내부의 백그라운드에서 비동기적으로 C# 코드 분석기를 실행하거나, 커맨드 라인에서 동기적으로 실행할 수도 있습니다. 

Roslyn 분석기와 Unity 프로젝트의 규칙 집합(ruleset) 파일은 코드의 스타일, 품질, 기타 문제를 검사하는데 도움이 되는 강력한 툴입니다. 기본 분석기 라이브러리를 사용해 코드를 검사하거나, 분석기를 직접 작성해 조직 내에서 활용할 베스트 프랙티스나 규칙을 구성할 수도 있습니다.

자세히 알아보기

Unity Safe Mode

Unity Safe Mode는 스크립트 컴파일 오류가 있는 프로젝트를 열 때 Unity에서 더 나은 대처를 할 수 있는 모드로, 에디터 시작 시 컴파일 오류가 감지되면 Safe Mode로 진입한다는 메시지가 표시됩니다. Safe Mode에서는 이러한 오류를 해결할 수 있도록 디자인된 환경이 제공되므로, 프로젝트 에셋이 임포트되는 시간을 낭비할 필요 없이 정상적인 상태의 프로젝트로 신속하게 복구할 수 있습니다. 따라서 프로젝트를 최신 Unity 버전으로 더 간편하고 빠르게 업그레이드할 수 있으며, 라이브러리 폴더에 잘못된 임포트 아티팩트가 포함된 경우를 최소화하여 대규모 프로젝트를 더 원활하게 진행할 수 있습니다.

자세히 알아보기

지금 Unity 2020.2 다운로드

위에 소개된 모든 기능을 포함한 다양한 기능을 지금 바로 사용해 보세요.

Unity에서는 최적의 웹사이트 경험을 제공하기 위해 쿠키를 사용합니다. 자세한 내용은 쿠키 정책 페이지를 참조하세요.

확인