Unity 6 UI 툴킷: 뉴스 및 업데이트

빠르게 변하는 게임 개발의 세계에서 매력적인 UI(사용자 인터페이스)를 만드는 것은 게임 메카닉을 개선하거나 뛰어난 비주얼을 구현하는 것만큼 중요합니다. UI는 사용자의 몰입감을 좌우할 수 있으며, 잘 디자인된 UI는 플레이어와 경험 사이를 이어주는 역할을 합니다. 게임의 복잡도가 점차 높아지면서 직관적이고 반응성 좋은 UI와 동적 데이터를 표시하는 기능에 대한 수요가 점점 많아지고 있습니다. Unity 6는 UI 개발을 가속하는 데 집중하여 더 빠르게, 더 효과적으로 아이디어를 구현할 수 있도록 UI 제작 프로세스를 간소화하는 툴을 제공합니다.
Unity 6에서는 UI 툴킷이 크게 개선되었습니다. 광활한 오픈월드 RPG를 제작하든 열정이 담긴 인디 프로젝트를 진행하든, 툴킷을 사용하면 워크플로를 간소화하고, 빠른 반복 작업(iteration)을 최적화하고, 프로덕션 시간을 단축할 수 있습니다. Unity 6를 사용하면 복잡한 계층 구조(Hierarchy) 관리, 성능 병목 현상에 따른 대응, 광범위한 커스터마이징 구현과 같은 가장 일반적인 UI 문제가 해결되므로, UI를 더 직관적이고 유연하며, 무엇보다도 즐겁게 디자인할 수 있습니다.
Unity 6 UI 툴킷의 주요 기능
Unity 6의 UI 툴킷에는 UI 개발을 간소화하고, 커스터마이징을 강화하고, 역동적인 사용자 경험을 만드는 데 도움이 되는 새로운 기능이 포함됩니다. 주요 기능은 다음과 같습니다.
런타임 데이터 바인딩
새로운 런타임 데이터 바인딩은 런타임에 UI 요소와 게임 데이터를 원활하게 연결하는 강력한 기능입니다. 개발자는 이 기능을 사용하여, 방대한 상용구 코드를 작성하지 않고도 변수, 프로퍼티, 컬렉션을 UI 컴포넌트에 직접 연결할 수 있습니다. 그러면 UI 요소와 기본 게임 상태의 동기화를 유지하는 데 필요한 수작업이 줄어들기 때문에, 반응성이 우수한 동적 인터페이스를 손쉽게 제작할 수 있습니다.
런타임 데이터 바인딩은 UI 빌더에서 직접 설정할 수 있으므로, 코드리스 툴을 사용하는 팀원이 워크플로에 더 쉽게 참여하고 더 원활한 협업을 수행하도록 합니다. 확장도 가능하기 때문에 개발자는 값 유형 간의 컨버터를 만들고 커스텀 바인딩 유형을 구현할 수 있습니다. 또한 런타임 데이터 바인딩을 미세 조정하여 최적의 성능을 달성하고 게임 UI의 효율성과 반응성을 유지할 수 있습니다.

확장된 UI 컨트롤 라이브러리
UI 툴킷 표준 라이브러리가 확장되어 UI 디자인에 사용할 수 있는 빌트인 옵션을 더 많이 제공합니다. 최근에 2022 LTS에 추가된 TreeView와 다중 열 ListView 같은 기능은 IMGUI에서 UI 툴킷으로의 마이그레이션을 지원하였으며 대규모 데이터 세트를 관리하고 표시하는 데 중요한 역할을 했습니다.
이번 버전에는 TabView와 ToggleButtonGroup이 도입됩니다. 이제 버튼에 아이콘이 지원되고, 버튼을 텍스트와 함께 또는 텍스트 없이 표시할 수 있습니다. 이러한 신규 컨트롤은 에디터뿐 아니라 런타임 환경에서도 사용할 수 있고 게임의 심미적인 특성에 맞게 커스터마이즈할 수 있어, 일관적이고 몰입감 높은 플레이어 경험을 만들 수 있도록 보장합니다.
향상된 확장성
UI 툴킷의 확장성, 특히 커스텀 컨트롤을 생성하고 UI 빌더에 표시하는 기능이 크게 업그레이드되었습니다. 이제 개발자는 더 쉽게 커스텀 UI 컨트롤을 생성하고 드래그 앤 드롭 디자인에 원활하게 통합시킬 수 있습니다. 이번 업그레이드를 통해 재사용 가능하고 맞춤화된 컴포넌트를 더 쉽게 만들 수 있으므로, 개발 시간을 단축하고 창의력을 더 자유롭게 발휘할 수 있습니다.
UXMLFactories와 UXMLTraits로 더 이상 상용구 코드를 작성할 필요도 없습니다. 이들은 현재 지원이 중단되었으며 향후 버전에서 제거될 예정입니다. C# 코드를 [UXMLElement]와 [UXMLAttribute] 속성으로 보강하는 새로운 작업 방식을 통해 더 직관적이고 간결하면서도 유지 관리하기 쉬운 커스텀 코드 정의를 만들 수 있습니다. 이 새로운 메서드를 활용한 커스텀 UI 컨트롤 생성은 Unity 매뉴얼을 참고하세요.
컨트롤 설정 개선
Unity 6에서는 UI 빌더에서 커스텀 컴포넌트가 표시 및 설정되는 방식도 향상되며, 에디터 인스펙터(Inspector)에 있는 것과 비슷한 프로퍼티 드로어와 데코레이터를 지원합니다. 이러한 추가 기능을 통해 개발자가 UI 요소 속성이 노출되는 방식을 완전히 제어할 수 있으므로, UI 디자이너는 더 직관적이고 효율적인 방식으로 프로퍼티를 조정할 수 있습니다. 따라서 더 보기 좋고 원활하게 작동하며 완성도가 높고 커스터마이즈도 가능한 인터페이스를 만들 수 있습니다.
효율적인 데이터 관리를 위한 UXMLObjects
UXMLObjects를 활용하면 UXML 파일 내에서 직렬화된 데이터를 유연한 방법으로 직접 정의하고 관리할 수 있습니다. 이 기능을 활용하면 개발자는 대규모 데이터 구조라 하더라도 가독성을 유지하면서 재사용 가능하고 독립적인 UI 컴포넌트를 생성할 수 있습니다.
UXMLObjects를 사용하면 UI 빌더에서 직접 저장하고 편집할 수 있는 직렬화된 데이터를 UI 요소에 포함할 수 있으므로, 데이터 무결성을 유지하면서도 UI의 다양한 부분에서 더 쉽게 요소를 재사용할 수 있습니다. 디자이너가 데이터 구조를 눈으로 보면서 편집할 수 있어, 데이터 기반 UI 컴포넌트의 워크플로가 간소화됩니다.
이 기능은 데이터의 시각화를 파이 차트 형태로 설정할 때처럼 재사용 가능하고 구조화된 UI 요소를 제작할 때 유용합니다. 개발자는 UXMLObjects 내의 데이터를 직렬화하여 UI 디자인에 대한 체계적인 모듈 단위 접근 방식을 유지하고, 동적인 대규모 데이터 세트를 관리하는 프로세스의 효율성을 높일 수 있습니다.
고급 텍스트 및 현지화 기능
포괄적인 유니코드와 고급 텍스트 셰이핑 기능을 제공하는 텍스트 제너레이터 옵션 덕분에 UI 툴킷에 다중 언어 및 이모지 지원이 추가됩니다. 따라서 UI에서 다양한 언어를 원활하게 지원할 수 있습니다. 아랍어, 히브리어와 같은 RTL(오른쪽에서 왼쪽 방향) 스크립트도 지원하므로 진정한 의미의 다중 언어 지원이 가능합니다.

이 새로운 텍스트 백엔드는 전적으로 옵트인 방식이므로, 개발자는 향상된 현지화의 이점을 활용하면서 필요할 때 적절하게 전환할 수 있습니다. 어느 정도의 제약은 있지만(매뉴얼 참조), 이 시스템은 프로젝트의 도달률(Reach)을 높이는 데 유용한 툴입니다.
개발자는 업데이트된 현지화 패키지로 새로운 다중 언어 지원을 활용하고 UI 툴킷 콘텐츠를 간편하게 현지화해 게임을 여러 언어로 제공할 수 있습니다. 새로운 바인딩 시스템과의 통합으로 UI 빌더에서 이 기능에 직접 액세스할 수 있으므로, 다중 언어 프로젝트에서도 원활하고 효율적인 워크플로를 유지할 수 있습니다.
워크플로 간소화
Unity 6에는 더 빠르고 더 직관적으로 UI를 개발하는 데 도움이 되는 여러 워크플로 개선 사항이 포함됩니다. 이번 업데이트로 개발자는 더 빠르게 반복 작업을 수행하고 더 효율적으로 디자인할 수 있습니다.
컨트롤 라이브러리 검색
컨트롤 라이브러리를 탐색하는 것은 어려울 수 있으며, UI 요소와 커스텀 컨트롤이 많은 복잡한 프로젝트에서는 특히 그렇습니다. 이번 업데이트에서는 컨트롤 라이브러리에 빠르고 직관적인 검색 기능이 추가되어 UI 요소에 빠르게 액세스할 수 있게 합니다. Standard 섹션과 Project 섹션에서 모두 사용할 수 있으며, 더 손쉬운 검색에 도움이 됩니다.

인라인 스타일을 선택자로 추출하기
이제 인라인 스타일 추출을 더 강력하게 제어할 수 있습니다. 특정 값을 새로 만들지 않아도 값을 추출하고 기존 선택자에 적용할 수 있습니다. 이렇게 하면 선택자에서 인라인 편집을 복제할 필요성이 크게 줄어들고, 개별 요소를 선택자에 ‘커밋’하기 전에 여러 변경 사항을 실험해 볼 수 있습니다.

슬라이더의 Fill 속성
슬라이더에 Fill 속성이 추가되어 기능을 확장하고 음량 컨트롤, 체력 바 같은 비주얼 요소를 만들 수 있습니다. Fill 속성을 사용하면 슬라이더의 특정 영역을 채울 수 있고, 채우는 색상도 선택할 수 있습니다. 이 신규 속성은 다음과 같이 코딩으로도 지원됩니다.
var slider = new Slider();
slider.fill = true;

성능 개선
Unity 6는 다양한 성능 개선 사항을 도입하여 에디터와 런타임 환경에서 원활하고 반응성 좋은 경험을 지원합니다.
- 이벤트 디스패치: 이벤트 디스패치 규칙이 간소화되어 더 이해하기 쉽고 빠르게 사용할 수 있습니다.
- 메시 생성 향상: 주요 개선 사항으로는 클래식 요소 지오메트리를 위한 잡 시스템 지오메트리 생성 및 벡터 API의 네이티브 구현 전환이 있습니다. 텍스트 생성도 이제 병렬화되었습니다.
- 커스텀 지오메트리 API: 새로운 공용 API를 통해 개발자들이 커스텀 지오메트리를 동일한 성능으로 생성할 수 있어 UI 컴포넌트를 크게 최적화할 수 있습니다.
- 복합적인 계층 구조의 레이아웃 성능: 레이아웃 계산 캐싱이 개선되어 복합적인 계층 구조의 성능이 크게 향상되었으며, 이에 따라 더 원활한 사용자 경험이 제공됩니다.
- 대규모 데이터 세트에 최적화된 TreeView: 이전에는 대규모 데이터 세트에서 비효율적이던 TreeView 컨트롤이 Entities 같은 새로운 고성능 백엔드를 통해 향상되었습니다.
UI 툴킷으로 생성한 콘텐츠를 최적화하는 방법에 관한 팁은 유나이트 2024의 요약 세션을 참고하세요.
유니티는 성능 유지를 가장 우선시하며 중요하게 생각합니다. 높은 반응성과 성능을 발휘하는 사용자 인터페이스를 만드는 최고의 플랫폼이라는 Unity의 명성을 유지할 수 있도록 앞으로도 업데이트를 통해 계속 최적화를 진행하겠습니다.
맺는말
Unity 6는 정교한 고품질의 UI를 만들 수 있도록 지원하는 다양한 신규 기능과 개선 사항을 제공합니다. 이번 성능, 워크플로, 커스터마이징 개선 사항은 인디 개발자든 대형 스튜디오에 소속된 개발자든 누구나 가능성의 한계를 확장할 수 있도록 지원합니다.
시작하고 학습하기
UI 툴킷을 시작하려면 전체 기술 자료와 튜토리얼을 살펴보고, Unity 커뮤니티에 참여하여 다른 사람들을 통해 아이디어를 얻고 직접 만든 프로젝트를 공유해 보세요.
QuizU를 통해 UI 툴킷의 개념을 학습하거나, 드래곤 크래셔(Dragon Crashers) UI 툴킷 샘플로 전체 게임 샘플을 살펴보셔도 됩니다. 샘플과 함께 제공되는 콘텐츠도 놓치지 마세요.
- 프로그래머를 위한 QuizU 토론 문서와 샘플의 동영상 개요
- 전자책 Unity의 사용자 인터페이스 디자인과 구현 및 샘플의 동영상 개요