2019년 테크 스트림의 다음 릴리스, 2019.2에서 Unity에 어떤 새로운 기능과 개선 사항이 적용되는지 먼저 만나보실 수있도록 베타 버전이 출시되었습니다. 이번 베타에서는 인기 있는 Polybrush 툴을 패키지로 포함하였습니다. 또한 새로운 글로벌 고객에게 게임과 앱을 제공할 수 있도록 유니티 퍼블리싱 포털(Unity Distribution Portal)을 추가하였으며, 모바일, 조명, 2D, XR 등을 지원하는 툴세트를 개선하고 확장했습니다.
Unity 2019.2b는 현재 Unity Hub를 통해 제공됩니다(Installs>Beta Releases). Unity Hub는 Unity 2019.2 베타 페이지에서 다운로드할 수 있습니다. 이 베타 버전을 테스트해보면서 프로젝트 및 워크플로에서 최신 Unity 버전 및 기능, 패키지를 평가하실 수 있습니다. 공식 릴리스 전에 여러분의 의견을 수렴하여 최고의 툴과 경험을 제공할 예정이며, 베타 테스트에 참여하신 분들께 추첨을 통해 삼성 S10+를 드립니다. 자세한 내용은 글의 마지막 부분을 확인하시기 바랍니다.
Android용 Optimized Frame Pacing은 Google의 Android Gaming and Graphics팀과 협력하여 개발한 기능으로, 프레임 속도 변화가 적도록 프레임을 잘 배분함으로써 일관된 프레임 속도를 제공하며, 더욱 원활한 게임플레이 경험을 선사할 수 있습니다.
iOS용 OpenGL 멀티스레딩 지원을 추가하여 Metal을 지원하지 않는 로우엔드 iOS 기기의 성능을 개선했으며, iOS와 Android 모두에OpenGL이 SRP 배처(SRP Batcher)를 지원하도록 하여 경량 렌더 파이프라인(LWRP)을 사용하는 프로젝트의 CPU 성능을 개선했습니다.
또한 iOS와 Android의 새로운 Screen.brightness 프로퍼티를 통해 화면 밝기 조절 기능을 포함하고, iOS의 ReplayKit API를 개선했으며, UI를 더 쉽게 조정할 수 있도록 새 Screen.cutouts 프로퍼티를 통해 Android의 노치(또는 카메라 홀) 주변을 감싸는 경계 상자에 대한 감지를 지원합니다. 이외에도 Android App Bundle을 사용한 APK 크기 확인을 추가하여 다양한 대상에 대한 최종 애플리케이션 크기를 더 쉽게 확인할 수 있습니다.
다음은 Screen.cutouts 함수를 구현하여 프로젝트의 안전 영역 및 컷아웃 정보를 시각화하는 방법입니다.
var res = Screen.currentResolution; var safeArea = Screen.safeArea; var cutouts = Screen.cutouts; StringBuilder safeAreaInfo = new StringBuilder($"Resolution (Width × Height): {res.width}x{res.height}\n"); safeAreaInfo.Append($"safeArea (X x Y / Width × Height):\n"); safeAreaInfo.Append($"{safeArea.x} x {safeArea.y} / {safeArea.width} x {safeArea.height} \n"); if (cutouts.Length > 0) { foreach (var c in cutouts) { GUIDrawRect(c, Color.green, ""); safeAreaInfo.Append($"cutout (X x Y / Width × Height):\n"); safeAreaInfo.Append($"{c.x} x {c.y} / {c.width} x {c.height}\n"); } } Else safeAreaInfo.Append("No cutouts detected"); GUIDrawRect(safeArea, Color.red, safeAreaInfo.ToString());
이제 에디터에서 직접 3D 모델로부터 복잡한 모양을 만들어 내고(sculpt), 세부 메시의 위치를 지정하고, 커스텀 조명이나 색을 칠하고 메시를 가로질러 텍스처를 혼합할 수 있습니다. 이제 Unity 2018.1 이상과 호환되는 Polybrush 1.0.0을 패키지 관리자를 통해 이용할 수 있습니다. 이 버전에는 메시 및 프리팹의 흩뿌리기(scaterring) 모드가 포함됩니다.
이번 릴리스 직후 2D 픽셀 퍼펙트(2D Pixel Perfect)와 새로운 2D 조명을 포함하는 2D 렌더러(2D Renderer)가 경량 렌더 파이프라인(LWRP)에 실험 버전으로 추가될 예정입니다. 2D 조명과 관련된 더 자세한 내용은 GDC 2019 세션을 참조하시기 바랍니다.
또한 셰이더 그래프(Shader Graph)에 2D 마스터 노드(2D Masternodes)가 포함되어 2D 언릿 및 릿 스프라이트 셰이더를 생성할 수 있습니다.
이제 GPU 벤더와 관계없이 모든 에디터 플랫폼에서 라이트맵 노이즈 제거(Lightmap denoising) 기능을 사용할 수 있습니다. 또한 베이킹 설정 방식을 근본적으로 바꿔 이제 오브젝트에 프로브 라이트 또는 어떤 라이트맵이 적용되었든 관계없이 모든 오브젝트는 전역 조명 베이크에 기여할 수 있습니다. 이는 프로브 워크플로에 새로운 가능성을 제시하며, 앞으로 더욱 개선될 것입니다. 또한 이번 릴리스에는 특히 GPU 라이트매퍼를 사용하여 조명 반복 작업할 때의 속도가 크게 개선되었습니다.
인텔에서 새로 출시한 이 크로스 플랫폼 라이브러리는 AI 기반의 노이즈 제거 필터입니다. Unity에서 이 라이브러리를 사용하면 라이트맵을 포스트 프로세싱하여 라이트매핑 워크플로와 라이트맵 품질을 향상시킬 수 있습니다. 그 결과 훨씬 적은 수의 샘플을 사용하여 부드럽고 노이즈 없는 라이트맵을 구현할 수 있습니다. 자세한 내용은 해당 주제에 대한 유니티 GDC 2019 세션을 참조하시기 바랍니다.
유니티는 아래 스크린샷과 같이 Lightmap Static에 해당하는 오브젝트 용어를 Contribute GI로 변경했습니다. 이제 Contribute GI인 오브젝트가 GI를 라이트 프로브에서 받을지, 라이트맵에서 받을지 선택할 수 있습니다. 이 옵션은 오브젝트가 라이트맵 또는 라이트 프로브에서 GI를 가져와야 할 경우, 메시 렌더러, 스킨드 메시 렌더러 및 터레인에 새로 추가된 드롭다운 메뉴 “Recevie Global Illumination”에서 선택하면 됩니다.
이번 베타 릴리스에서는 GPU 라이트매퍼(프리뷰)가 CPU 라이트매퍼와 동등한 기능을 수행할 수 있도록 개선되었습니다. GPU 라이트매퍼는 이제 다음과 같은 기능을 제공합니다.
NVIDIA OptiX AI Denoiser가 업그레이드되어 성능이 향상되고 메모리 사용량은 감소했으며 NVIDIA Turing GPU를 지원합니다.
사용자가 이제 Windows 및 UWP에서 게임과 앱을 실행하는 동안에도 비동기로 스크린샷을 찍고 버그 리포트를 기록할 수 있게 되어 성능에 미치는 영향이 크게 줄었습니다. 이 기능을 사용하려면 UserReporting GameObject에서 UserReportingPlatform을 Async로 전환해야 합니다.
새로운 클라우드 다이노스틱스의 유저 리포팅 SDK에 대한 자세한 내용은 유니티 Github의 기술 자료 페이지를 참고하시기 바랍니다.
TypeCache를 이용하면 특정 클래스 또는 인터페이스에서 파생된 유형뿐만 아니라 특정 속성으로 표시된 유형 또는 메서드에 빠르게 액세스할 수 있습니다. TypeCache는 에디터에서 로드한 모든 어셈블리를 지원하는 내부 네이티브 캐시를 사용합니다. 해당 기능은 새 UnityEditor.TypeCache C# API를 통해 사용할 수 있습니다.
using UnityEditor; using System; using System.Collections.Generic; using System.Linq; public class VolumeComponent {} public class Example { static List<Type> s_VolumeComponents; static Example() { s_VolumeComponents = TypeCache.GetTypesDerivedFrom<VolumeComponent>().ToList(); } }
유니티 퍼블리싱 포털(UDP)을 사용하면 전 세계 시장의 앱 스토어에 모바일 게임과 앱을 손쉽게 퍼블리시하여 비즈니스를 성장시키고 사용자 기반을 크게 확장할 수 있습니다. UDP를 사용하면 등록된 스토어에 빌드를 각각 자동으로 생성하고 스토어의 개별 요구 사항에 관계없이 배포가 가능해집니다.
UDP(현재 프리뷰로 제공)에서 퍼블리싱할 수 있는 스토어는 Catappult/Aptoide(전 세계)와 Moo Store(동남아시아)이며, 곧 ONE Store(한국), Jio GamesStore(인도) 등 더 많은 스토어가 지원될 예정입니다. 지금 시작해 보시기 바랍니다.
이번 릴리스에서 AR 파운데이션(AR Foundation)은 얼굴 추적, 2D 이미지 추적, 3D 오브젝트 추적 및 환경 프로브(모두 프리뷰로 제공)를 지원합니다.
고해상도 렌더 파이프라인(HDRP)은 미리 제작되고 매우 사실적인 스크립터블 렌더 파이프라인이며, 컴퓨트 셰이더 호환 플랫폼에서 실행되는 프로젝트용으로 설계되었습니다. HDRP는 이러한 설계를 바탕으로 게임에서 기술 데모에 이르기까지 무엇이든 최고의 해상도로 제작할 수 있는 툴을 제공합니다. 이번 베타 릴리스에서는 HDRP에 VR 프로젝트(프리뷰)를 지원하는 기능이 추가되었습니다. 현재는 Windows 10 및 Direct3D11 기기만 지원되며, HDRP의 VR에는 싱글 패스(Single Pass) 스테레오 렌더링을 사용해야 합니다. 전체 제약 사항은 여기에서 확인하실 수 있습니다.
일부 기능이 이제 패키지로 제공되어 에디터가 더 가볍고 모듈화되었습니다. 예를 들어 이제 패키지 관리자를 통해 애즈(Ads), 2D 스프라이트 에디터(2D Sprite Editor) 및 2D 타일맵 에디터(2D Tilemap Editor)를 쉽게 통합, 업그레이드 또는 제거할 수 있습니다.
Unity Hub 또는 여기에서 베타 버전을 다운로드하여 모든 새로운 기능을 체험해 볼 수 있습니다.
Unity 베타 프로그램에 참여하여 새로운 Unity 버전에 대한 피드백을 제공해 주세요. 여러분의 소중한 의견은 정식 릴리스를 출시하기 전에 버전을 개선하여 완성도를 높이는 데 큰 도움이 됩니다. 기존에 Unity 베타 프로그램에 참여한 적이 없는 경우 영향력 있는 베타 테스터가 되는 방법에 관한 가이드를 살펴보시면 도움이 됩니다. 베타 테스터로 참여하시면 추첨을 통해 5분에게 삼성 갤럭시 S10+를 드립니다.
추첨에 참여하려면 2019.2b 개발 주기 동안 적어도 하나 이상의 오리지널 버그를 확인하고 신고해야 하며, 버그 레포트 작성 시 버그 설명(Submission)란에 #Unity2019Beta를 태그해야 합니다. 공식 규칙과 조건은 여기에서 확인하실 수 있습니다. 당첨자는 2019.2 공식 릴리스에 관한 블로그 게시글과 베타 포럼을 통해 공지할 예정입니다.
유니티는 삼성과 협력하여 새로운 어댑티브 퍼포먼스(프리뷰) 기능을 선보였습니다. 이 기능은 삼성 갤럭시 S10에 최초로 탑재되었습니다. 자세한 내용은 여기에서 확인하실 수 있습니다.