Unity 2020.3은 2020.1과 2020.2에 릴리스된 기능이 포함된 LTS 릴리스이며 2년간 지원됩니다. 자세한 내용과 기타 사용 가능한 LTS 설치 프로그램에 대해서는 LTS 릴리스 페이지를 참조하십시오.
Unity 2020 릴리스에 대한 신규 기능, 변경 사항, 개선 사항을 자세히 확인하려면 다음을 참조하십시오.
2020.3 릴리스 노트
2020.2 릴리스 노트
2020.1 릴리스 노트
이전 Unity 버전의 프로젝트를 업그레이드하는 경우 업그레이드 가이드를 참조하여 프로젝트에 미치는 영향에 대한 자세한 내용을 확인하십시오. 아래는 LTS별 업그레이드 가이드입니다.
2019 LTS 이후 Unity 2020 LTS에서 변경된 기능을 살펴보고 영향을 받는 부문에 대한 문서를 확인하십시오.
유연성을 추가하기 위해 이제 씬의 컨텍스트를 벗어나지 않고 프리팹 모드로 들어가서 회색 처리된 배경으로 프리팹을 편집할 수 있습니다. 여전히 프리팹을 따로 편집할 수도 있습니다.
패키지 관리자에는 새로운 사용자 인터페이스(UI) 아이코노그래피, 개선된 레이아웃, 현재 설치된 패키지 정보와 사용 가능한 업데이트 정보 간의 더 나은 구분을 포함하여 몇 가지 디자인 업데이트가 있습니다.
새로운 축 전환 설정을 하면 3D 모델링 소프트웨어에서 메시를 다시 열지 않고도 축 임포트 문제를 수정할 수 있습니다. 이제 SketchUp에서 발생한 오브젝트에 대한 커스텀 프로퍼티를 임포트할 수 있습니다. PNG 파일을 임포트할 때 감마 보정을 무시할 수 있는 옵션이 있습니다(다른 플랫폼에서 컬러 일관성에 도움이 될 수 있음).
현재 에셋 임포트 파이프라인 v2는 기본 에셋 파이프라인입니다.
포커스 인스펙터 창을 사용하면 선택한 게임 오브젝트의 인스펙터 세부 정보를 더욱 쉽게 확인할 수 있습니다. 선택한 게임 오브젝트나 에셋에 대한 플로팅 인스펙터 창을 열려면 오른쪽 클릭하여 Properties를 선택합니다. 여러 포커스 인스펙터 창을 동시에 열 수 있으므로 씬을 변경하는 동안 여러 오브젝트를 평가하거나 참조할 수 있습니다. 또한 스크린 공간이 더 적게 필요한 게임 오브젝트의 특정 컴포넌트에 집중할 수도 있습니다.
개발자는 현재 새로운 Progress API와 백그라운드 작업 창으로 장기 실행하는 비동기식 작업을 노출할 수 있습니다. 이러한 툴은 함께 작동하여 자체 에디터 창에 작업 진행 상황을 표시합니다. 하위 작업을 모니터링하고 상태를 기준으로 작업을 필터링하며 전역 진행 상황을 확인하는 등의 작업을 수행할 수 있습니다.
Unity 액셀러레이터용 로컬 관리자 대시보드를 사용하여 팀의 요구 사항을 위해 툴을 설정하고 상태를 평가하고 로그와 메트릭스에 액세스할 수 있습니다.
어드레서블 에셋 시스템은 “주소”로 에셋을 로드하는 쉬운 방법을 제공합니다. 콘텐츠 팩 생성과 배포를 간소화하여 에셋 관리 오버헤드를 처리합니다. 하위 오브젝트 지원과 런타임 카탈로그 업데이트와 같은 개발 워크플로를 개선하기 위해 Unity 에디터에 상당한 사용자 경험 업데이트를 포함하여 패키지에 여러 새로운 기능을 추가하였습니다.
Unity Hub 버전 2.4.2에는 프로젝트, 다운로드, Unity 에디터 버전, 모듈 관리를 위한 개선된 워크플로가 포함되어 있습니다.
이제 쿼리를 입력할 때 훨씬 더 많은 검색 토큰과 컨텍스트 완성을 지원하는 기능을 제공하는 QuickSearch 2.0을 사용할 수 있습니다. 또한 이제 열려있는 씬에만 국한되기보다 프로젝트의 모든 씬과 프리팹을 통해 한 번에 검색할 수 있습니다.
이제 프리뷰가 종류된 에디터 코루틴을 사용하면 MonoBehaviour 스크립트 내의 코루틴이 런타임 중 처리되는 방식과 유사하게 에디터 내에서 반복자 메서드 실행을 시작할 수 있습니다.
이제 프로파일러 창에 차트를 추가하여 기존에 있었거나 사용자가 생성한 프로파일러 통계에 대한 성능 인사이트와 컨텍스트를 더 많이 얻을 수 있습니다.
NonReorderable
속성을 사용하여 이 기능을 비활성화할 수 있습니다.이제 카메라 스태킹을 사용하여 여러 카메라의 출력을 레이어링하여 하나의 결합된 출력을 만듭니다. 이렇게 하면 2D 사용자 인터페이스(UI) 안에 3D 모델이나 차량 조종석과 같은 효과를 만들 수 있습니다.
조명 설정 에셋을 사용하면 사용자는 여러 씬에서 동시에 사용되는 설정을 변경할 수 있습니다. 즉 여러 프로퍼티에 대한 수정이 프로젝트를 통해 빠르게 전파되며 이는 여러 씬에 걸쳐 전역 변경을 해야하는 조명 아티스트에게 이상적입니다. 예를 들어 미리 보기와 완성도 높은 품질 베이크 사이를 이동할 때 이제 조명 설정 간에 훨씬 더 빠르게 전환됩니다.
라이트매핑에 대한 모델 설정이 이제 훨씬 더 간소해졌습니다. 임포트 시 팩 마진에 필요한 크기를 찾는 프로세스를 간소화하기 위해 Unity는 현재 모델 임포터에 Calculate Margin 메서드를 제공합니다. 여기에서 모델이 사용되는 최소 라이트맵 해상도와 최소 스케일을 지정할 수 있습니다. 이 입력에서 Unity의 언래퍼는 필요한 팩 마진을 계산하므로 라이트맵이 오버랩되지 않습니다.
CPU와 GPU 라이트매퍼를 위한 더 나은 비상관화 방법을 구현했습니다. 이러한 비상관화 개선은 기본적으로 활성화되어 있으며 사용자 입력이 필요 없습니다. 그 결과 라이트맵은 더 짧은 시간 내에 노이즈가 없는 결과로 수렴하고 더 적은 아티팩트를 표시합니다.
각 레이를 계산하는 데 드는 시간을 제한하려면 라이트매퍼가 각 광선의 경로를 종료하기 위한 몇 가지 기준을 찾아야 합니다. 각 레이에 허용되는 바운스 횟수에 엄격한 제한을 두면 됩니다. 이 프로세스를 더 최적화하기 위해 조기 종료할 경로를 무작위로 선택하는 “러시안 룰렛”이라는 기술을 사용할 수 있습니다. 이 방법은 경로가 씬의 전역 조명에 중요한 정도를 고려합니다. 레이가 어두운 표면에서 반사될 때마다 해당 경로가 일찍 끝날 가능성이 높아집니다. 이러한 방식으로 레이를 컬링하면 일반적으로 조명 품질에 영향을 거의 주지 않으면서도 전반적인 베이크 시간이 단축됩니다. 이전에는 쿠키가 실시간 광원으로만 제한되었습니다. 현재 Unity는 CPU 라이트매퍼와 GPU 라이트매퍼에 쿠키를 지원합니다. 즉 베이크된 광원과 혼합 모드 광원은 쿠키가 직간접 조명을 감쇠시키는 영향도 고려합니다.
Contributors와 Receivers 씬 뷰는 씬 내에서 전역 조명(GI)에 영향을 주는 오브젝트를 표시합니다. 또한 이렇게 하면 GI가 라이트맵에서 수신되는지 또는 라이트 프로브에서 수신되는지 더욱 쉽게 확인할 수 있습니다.
유니버설 렌더 파이프라인(URP)에는 빌트인 렌더 파이프라인과의 패리티에 더욱 가깝게 하는 새로운 기능이 있습니다. 스크린 공간 앰비언트 오클루전(SSAO)은 씬의 주변광 화질을 향상시킵니다. 새로운 컴플렉스 릿 셰이더를 사용하여 빌드 데이터 크기를 줄이고 로드 시간을 향상시킬 수 있습니다. 클리어 코트 맵을 사용하여 자동차 페인트와 같은 머티리얼을 시뮬레이션하고 모방할 수 있습니다.
고해상도 렌더 파이프라인(HDRP)에는 현재 더 나은 툴이 포함되어 있어 조명 디버그에 도움이 되며, 데칼 시스템 개선도 포함되어 있습니다. 패스트레이싱은 고품질 비초점화 블러 등이 있는 경로 추적 이미지를 생성하기 위해 유기적 머티리얼과 새로운 뎁스오브필드 모드용 안개 흡수와 피하 산란을 지원합니다. 고사양 그래픽스를 목표로 하는 프로젝트에 대한 좋은 시작점인 새로운 HDRP 샘플 씬을 사용할 수 있습니다. 이 템플릿에는 HDRP로 사실적인 씬을 생성하는 데 도움이 되는 물리 기반 빛 강도 등 여러 설정이 포함되어 있습니다. Unity Hub에서 다운로드하십시오.
런타임 시 애니메이션 스프라이트 변형 성능을 향상하려면 패키지 관리자를 통해 버스트 컴파일러와 컬렉션 패키지를 설치합니다. 이렇게 하면 2D 애니메이션 패키지가 버스트 컴파일과 낮은 수준의 배열 유틸리티를 사용하여 Unity의 스프라이트 메시 변형 처리 속도를 높일 수 있습니다.
새로운 “Stretched” 옵션은 커스텀 코너 스프라이트 없이 인접한 모서리를 연결하는 코너에 사용할 수 있습니다. 이 옵션은 스프라이트 셰이프 프로필에 커스텀 코너 스프라이트를 지정할 필요 없이 인접한 모서리를 연결하는 지오메트리를 빌드합니다. 새로운 코너 모드에 대한 스크립팅 API 지원은 이후 릴리스에 추가될 예정입니다. 스프라이트 셰이프 메시 베이킹을 통해 런타임 시 다시 로드하고 불필요한 런타임 메시 생성을 하지 않도록 편집하는 동안 메시 데이터를 저장할 수 있습니다.
2D 기본 템플릿을 업데이트했습니다. 여기엔 현재 모든 검증된 2D 툴이 포함되어 있고 사전 컴파일되었으므로 새로운 프로젝트는 전체 2D 툴셋으로 더 빠르게 로드됩니다. 또한 템플릿에는 2D 프로젝트에 최적인 패키지와 기본 설정이 포함되어 있습니다. 포럼에서 자세히 알아보십시오. 모든 최근 2D 툴을 표시하는 Unity의 2D 샘플 프로젝트 Lost Crypt는 2020.1로 업데이트되었습니다. 이 프로젝트는 모든 2D 툴이 매력적인 2D 게임을 만들기 위해 함께 작동하는 방법을 보여줍니다.
이 릴리스에는 어떤 힘에도 리지드바디를 완전히 견고하게 만들고 런타임 비용이 거의 들지 않는 리지드바디 2D XY 포지션 제약에 대한 개선 사항을 포함하여 많은 2D 물리 업데이트가 포함되어 있습니다. 이 기능은 Box2D 물리에 대한 변경으로 인해 발생했습니다. 2D Physics Examples project는 모든 2D 물리 기능을 보여주기 위해 많은 씬으로 업데이트되었습니다.
시네머신은 최고의 씬이 씬 합성과 상호작용을 기반으로 나타나게 하는 동적이고 스마트한 코드리스 카메라용 툴 제품군입니다. 이를 통해 카메라 동작을 실시간으로 조정, 반복, 실험, 생성할 수 있습니다. 2020.1에서 시네머신 버전 2.5는 현재 검증된 패키지이며 모든 규모의 프로덕션에 권장됩니다.
셰이더 그래프에는 더 나은 그래프 에디터 성능과 같은 기술 아티스트에 대한 워크플로를 개선하는 몇 가지 새로운 기능이 포함되어 있습니다. 자세한 설명은 [셰이더 그래프 업그레이드 가이드]((https://docs.unity3d.com/Packages/com.unity.shadergraph@10.0/manual/Upgrade-Guide–10–0-x.html)를 참조하십시오.
VFX 그래프 업데이트에는 출력 이벤트가 포함되어 사용자가 C#의 델리게이트 인터페이스를 통해 생성 이벤트를 기반으로 광원이나 사운드, 물리 반응, 또는 게임플레이를 동기화할 수 있습니다.
애니메이션 리깅 패키지는 현재 검증되었습니다. 이를 통해 런타임 시 애니메이션화된 골격의 절차적 제어와 Unity 에디터에서 새로운 애니메이션 클립의 저작이 가능합니다.
전역 조명의 경우 현재 GPU 라이트매퍼와 CPU 라이트매퍼 모두 바운스 제한이 더 높습니다. 또한 현재 개선된 라이트맵 품질을 위해 Blue Noise Sampling을 사용하고 몇 가지 다른 개선 사항이 있습니다.
입력 시스템 패키지는 현재 프로덕션을 위해 검증되었고 대부분의 입력 요구 사항에 맞는 안정적인 솔루션을 제공합니다.
AR 개발을 위한 다중 플랫폼 프레임워크인 AR Foundation에는 현재 메싱 지원이 포함되어 있습니다. 가상 콘텐츠가 실제 오브젝트로 가려질 수 있고 물리 환경과 실감나게 상호작용할 수 있으므로 AR 경험이 훨씬 더 원활하게 현실 세계로 블렌딩됩니다.
Samsung Adaptive Performance 2.0은 가변 새로고침 속도, 스케일러, Adaptive Performance 시뮬레이터 확장자를 포함한 여러 기능을 보여주는 새로운 샘플 프로젝트와 함께 제공되어 모든 기기에서 Adaptive Performance를 에뮬레이트합니다.
또한 스탠드얼론 플레이어용 Apple Silicon에 대한 기본 지원을 사용하여 Mac 하드웨어의 다음 세대를 타겟으로 삼을 수도 있습니다.
플레이어에 대한 프로파일러 연결은 현재 특히 저사양 Android 기기를 사용하는 경우 더욱 안정적입니다.
C# 프로파일러 API에 대한 메타데이터 지원을 사용하여 데이터로부터 더 많은 콘텍스트를 얻고 성능에 영향을 미치는 부분을 더 잘 파악할 수 있도록 프로파일러에 노출할 수 있는 파라미터를 정의할 수 있습니다.
메모리 프로파일러 프리뷰 패키지의 캡처 메모리 오버헤드와 캡처 시간을 크게 단축했습니다.
Recorder
API를 통해 GPU 프로파일 데이터에 액세스할 수 있습니다. Sampler
API를 사용하여 데이터를 수집하고 런타임 성능 스탯 오버레이에 시각화합니다.
이제 프로파일러를 스탠드얼론 앱으로 실행할 수 있습니다. 이렇게 하면 툴을 Unity 외부의 별도 프로세스로 이동시키므로 에디터를 프로파일링하고 더욱 깔끔한 프로파일 데이터를 생성할 때 성능 오버헤드를 줄입니다.
Visual Studio 통합은 이제 패키지이며 빌트인 지원이 더 이상 개발되지 않을 예정입니다. 또한 패키지에는 Visual Studio의 더 빠른 시작과 같은 새로운 기능과 개선 사항이 포함되어 있습니다.
새로운 C# 디버깅 워크플로는 에디터가 릴리스 모드에서 기본적으로 C# 코드 최적화로 실행되게 하여 플레이 모드에서 프로젝트를 실행할 때 성능을 향상시킵니다. 프로젝트를 디버그하려면 플레이 모드로 진입하기 전에 반드시 디버그 모드를 활성화해야 합니다. 에디터를 다시 시작하지 않고 코드 최적화 모드 간에 전환하려면 Unity 에디터 상태 표시줄 하단 오른쪽의 디버그 버튼을 선택합니다.
일반 타입의 필드 직렬화에 대한 지원이 향상되었습니다. 이전에는 일반 타입(예: 클래스 MyClass>)가 있고 해당 타입을 사용하여 필드를 만들려는 경우 해당 타입의 비일반 서브 클래스(예: 클래스 MyClassInt : MyClassint>)를 정의해야 했습니다. 이 제한을 제거하였으므로 더 이상 일반 서브 클래스를 선언할 필요 없이 일반 타입을 바로 사용할 수 있습니다.
Unity는 네이티브 디버깅 기능을 추가하여 버스트 컴파일러를 개발 툴로 발전시키고 있습니다. 이제 Unity에 연결된 네이티브 디버거를 사용하여 중단점 설정, 건너뛰기 및 코드 실행하기를 할 수 있습니다. 또한 호출 스택과 변수, 자동, 스레드를 점검하고 처리할 수 있습니다.
Unity는 이제 C# 스크립트를 컴파일할 때 -deterministic 컴파일 옵션을 제공합니다. 이 옵션을 사용하면 에디터용 스크립트를 컴파일할 때 어셈블리의 공용 메타데이터가 변하지 않는 경우 어셈블리 정의(.asmdef) 레퍼런스를 불필요하게 다시 컴파일하는 일을 방지할 수 있습니다. 이는 많은 직접 그리고/또는 간접 레퍼런스가 있는 어셈블리를 변경하고 있을 때 반복 시간을 줄이는 데 특히 유용합니다. 자세한 내용은 ‘Improve compilation times with deterministic C# compilation by default in Unity 2020.2’ 비디오를 시청하십시오.
Unity는 이제 기본 인터페이스 메서드를 제외하고 최신 C# 8 기능 및 개선 사항을 지원합니다. 여기에는 null 값을 설정할 수 있는 레퍼런스 타입이 포함되어 레퍼런스 타입 변수에 null을 할당하려고 하면 컴파일러가 경고를 표시할 수 있습니다. 패턴이 일치하는 스위치 표현식을 사용하여 조건부 코드를 더욱 간단하게 작성할 수 있습니다.
C#의 네임스페이스는 코드를 구성하고 클래스 이름이 다른 패키지 및 라이브러리와 충돌하지 않도록 방지하는 효율적인 방법을 제공합니다. 루트 네임스페이스는 현재 asmdef 인스펙터의 새로운 필드로 사용할 수 있으며 Unity와 Visual Studio 및 Rider에서 새로운 스크립트를 생성할 때 자동으로 네임스페이스를 추가하는 데 사용됩니다. 이 기능을 사용하려면 Visual Studio와 Rider 패키지를 최신 버전으로 업데이트해야 합니다.
빌드 컴파일 시간을 개선했습니다. 예를 들어 머티리얼이나 셰이더 또는 프리팹과 같은 코드를 포함하지 않고 변경하는 경우 .NET 어셈블리에서 C++로의 IL2CPP 전환은 이제 플레이어를 빌드할 때 완전히 건너뜁니다.
게임플레이 중 오브젝트를 불안정하게 했던 일관성 없는 Time.deltaTime
값을 수정했습니다. 또한 TimeManager
인터페이스를 리팩터링하여 프레임 시간 계산을 더욱 안정적이게 하고 안정적인 프레임 속도로 게임을 실행 중일 때 오브젝트 움직임이 더욱 매끄럽도록 했습니다. 이러한 시간 안정성 개선 사항은 다양한 플랫폼에서 지원됩니다.
Unity 2020.2는 네스티드 프리팹을 포함한 몇 가지 중요한 최적화를 제공하여 정렬을 훨씬 더 빠르게 하고 룩업도 더욱 빠르게 합니다. 에디터 스크립트된 임포터 등록 함수의 검색은 최대 800배 더 빠른 것으로 테스트되었습니다. 또한 Camera.main
을 리팩터링하여 일부 프로젝트에서 쿼리에 드는 시간을 수백 밀리초로 줄였습니다.
Configurable Enter Play Mode는 더 이상 실험 기능이 아닙니다. 이 기능을 통해 “도메인 다시 로드”와 “씬 다시 로드” 동작을 하나 또는 둘 모두 비활성화하여 플레이 모드 진입 속도를 높일 수 있습니다. 이제 프리뷰가 종료된 에디터 코루틴을 사용하여 MonoBehaviour 스크립트 안의 코루틴이 런타임 동안 처리된 방식과 유사하게 에디터 내에서 반복자 메서드의 실행을 시작할 수 있습니다.
Unity Linker는 정적 분석을 수행하여 관리되는 코드를 스트리핑합니다. 또한 다양한 속성을 인식하고 식별할 수 없는 종속성을 표시할 수 있습니다. 이 툴은 Mono IL Linker와 일치하는 API 업데이트를 수신합니다. Unity Linker는 일부 간단한 반사 패턴을 감지하여 link.xml 파일을 사용할 필요성을 줄일 수 있습니다.
이제 컴파일 파이프라인은 Roslyn 분석기를 지원합니다. 이를 통해 반복 워크플로를 중단하지 않고 Unity 에디터 내의 백그라운드에서 C# 코드 분석기를 비동기식으로 실행할 수 있습니다. 또한 커맨드 라인에서 동기식으로도 C# 코드 분석기를 실행할 수 있습니다.
Unity 안전 모드는 스크립트 컴파일 오류가 있는 프로젝트를 열 때 Unity가 작동하는 방식을 개선합니다. 시작 시 에디터가 컴파일 오류를 감지하면 이제 안전 모드로 들어가라는 메시지가 표시됩니다. 이는 오류를 해결하도록 설계된 환경을 제공하므로 프로젝트 에셋을 불필요하게 임포트하지 않고도 프로젝트를 기능하는 상태로 빠르게 복귀할 수 있습니다. 이 기능은 프로젝트를 새로운 Unity 버전으로 업그레이드하는 프로세스를 간소화하고 속도를 높여주며 라이브러리 폴더에 알맞지 않은 임포트 아티팩트가 포함되는 경우의 수를 줄여주어 대규모 프로젝트를 진행 중인 팀에 도움이 됩니다.