Unity 6 UI Toolkit: 뉴스 및 업데이트
요약
Unity 6는 UI 개발 프로세스를 가속화하고 단순화하기 위해 UI Toolkit의 대폭적인 개선 사항을 발표했습니다. 런타임 데이터 바인딩과 확장된 컨트롤 라이브러리를 통해 개발자는 코드 작성량을 줄이면서도 역동적이고 몰입감 있는 사용자 인터페이스를 효율적으로 구축할 수 있습니다.
핵심 포인트
- 런타임 데이터 바인딩 도입으로 보일러플레이트 코드 없이 UI와 게임 데이터를 직접 연결 가능
- UI Builder를 통한 코드리스(codeless) 설정 지원으로 팀 내 협업 효율성 증대
- TabView, ToggleButtonGroup 등 새로운 UI 컨트롤 라이브러리 추가 및 아이콘 지원 강화
- 대규모 데이터 관리에 용이한 TreeView 및 멀티컬럼 ListView 기능 유지 및 확장
- 런타임 환경에서도 사용 가능한 커스터마이징 가능한 컨트롤 제공
급변하는 게임 개발 환경에서 매력적인 사용자 인터페이스 (UI)를 만드는 것은 게임 메커니즘을 개선하거나 멋진 비주얼을 제작하는 것만큼이나 중요합니다. 잘 설계된 UI는 플레이어와 여러분이 만든 경험 사이의 가교 역할을 하며, 몰입감을 결정짓는 핵심 요소가 될 수 있습니다. 게임이 점점 복잡해짐에 따라 직관적이고 반응성이 뛰어난 UI의 필요성과 동적 데이터 (dynamic data)를 표시하는 능력은 점점 더 중요해지고 있습니다. Unity 6는 가속화된 UI 개발에 초점을 맞추어, UI 제작 프로세스를 단순화하는 도구들을 제공함으로써 팀이 아이디어를 더 빠르고 강력한 영향력과 함께 현실로 구현할 수 있도록 지원합니다.
Unity 6는 UI Toolkit에 상당한 개선 사항을 가져왔습니다. 광활한 오픈 월드 RPG를 작업하든 인디 열정 프로젝트를 진행하든, 이 툴킷은 워크플로우를 간소화하고, 빠른 반복 (iteration)을 최적화하며, 제작 시간을 단축합니다. 복잡한 계층 구조 (hierarchies) 관리, 성능 병목 현상 (performance bottlenecks) 해결, 광범위한 커스터마이징 지원과 같은 가장 일반적인 UI 과제들을 해결함으로써, Unity 6는 UI 디자인을 더욱 직관적이고 유연하며, 무엇보다 즐겁게 만듭니다.
Unity 6 UI Toolkit의 주요 기능
Unity 6의 UI Toolkit은 UI 개발을 간소화하고, 커스터마이징을 강화하며, 역동적이고 매력적인 사용자 경험을 만들 수 있도록 돕는 강력한 새로운 기능들을 도입했습니다. 주요 하이라이트를 살펴보겠습니다:
런타임 데이터 바인딩 (Runtime data binding)
새로운 런타임 데이터 바인딩은 UI 요소와 게임 데이터를 런타임 (runtime) 중에 원활하게 연결하는 강력한 기능입니다. 이를 통해 개발자는 방대한 보일러플레이트 코드 (boilerplate code)를 작성하지 않고도 변수, 속성 (properties), 컬렉션 (collections)을 UI 컴포넌트에 직접 연결할 수 있습니다. 이는 UI 요소를 기반이 되는 게임 상태와 동기화하는 데 필요한 수동 작업을 획기적으로 줄여주어, 반응성이 뛰어나고 역동적인 인터페이스를 손쉽게 구축할 수 있게 합니다.
런타임 데이터 바인딩은 UI Builder에서 직접 설정할 수 있어, 코드리스 (codeless) 도구를 사용하는 팀원들도 워크플로우에 접근할 수 있으며 더 나은 협업을 가능하게 합니다.
또한 이들은 확장 가능하여, 개발자가 값 형식 (value types) 간의 컨버터 (converters)를 생성하고 커스텀 바인딩 타입 (custom binding types)을 구현할 수 있도록 해줍니다. 추가적으로, 런타임 데이터 바인딩 (runtime data bindings)을 미세 조정하여 최적의 성능을 달성할 수 있으므로, 게임의 UI가 효율적이고 반응성 있게 유지되도록 보장합니다.
확장된 UI 컨트롤 라이브러리
확장된 UI Toolkit 표준 라이브러리는 UI를 설계하기 위한 더 많은 내장 옵션을 제공합니다. 2022 LTS에서 도입된 TreeView 및 멀티컬럼 ListView (multicolumn ListView)와 같은 최근의 추가 사항들은 IMGUI에서 UI Toolkit으로의 마이그레이션 (migration)을 용이하게 했으며, 대규모 데이터 세트를 관리하고 표시하는 데 필수적입니다.
이번 버전에서는 TabView와 ToggleButtonGroup이 도입되었습니다. 이제 버튼은 아이콘 지원을 갖추게 되어, 텍스트와 함께 표시하거나 텍스트 없이 표시할 수 있습니다. 이러한 새로운 컨트롤들은 에디터 (Editor)에 국한되지 않습니다. 런타임 환경 (runtime environment)에서도 사용할 수 있으며, 게임의 미학에 맞게 완전히 커스터마이징할 수 있어 일관되고 몰입감 있는 플레이어 경험을 보장합니다.
개선된 확장성
UI Toolkit의 확장성은 특히 커스텀 컨트롤 (custom controls)을 생성하고 이를 UI Builder에 노출하는 측면에서 대폭 업그레이드되었습니다. 이제 개발자는 커스텀 UI 컨트롤을 더 쉽게 생성할 수 있으며, 이를 드래그 앤 드롭 (drag-and-drop) 디자인에 원활하게 통합할 수 있습니다. 이러한 업그레이드는 팀이 재사용 가능한 맞춤형 컴포넌트를 구축하는 것을 더 쉽게 만들어, 개발 시간을 절약하고 창의성을 높여줍니다.
UXMLFactories 및 UXMLTraits를 사용하여 보일러플레이트 코드 (boilerplate code)를 작성하던 시대는 지났습니다. 이들은 이제 사용 중단 (deprecated)되었으며 향후 버전에서 제거될 예정입니다. 새로운 방식은 단순히 C# 코드에 [UXMLElement] 및 [UXMLAttribute] 어트리뷰트 (attributes)를 데코레이팅하는 것을 포함하며, 이를 통해 커스텀 컨트롤 정의를 더욱 직관적이고 간결하며 유지보수하기 쉽게 만듭니다. 이 새로운 방법을 사용하여 커스텀 UI 컨트롤을 생성하는 방법에 대해서는 Unity 매뉴얼을 참조하십시오.
강화된 컨트롤 구성
Unity 6는 또한 에디터 인스펙터 (Editor Inspector)에서 볼 수 있는 것과 유사한 프로퍼티 드로어 (property drawers) 및 데코레이터 (decorators) 지원을 통해, UI Builder에서 커스텀 컴포넌트가 노출되고 구성되는 방식을 강화합니다.
이러한 추가 사항은 개발자에게 UI 요소의 속성(attributes)이 노출되는 방식을 완전히 제어할 수 있는 권한을 부여하며, UI 디자이너에게는 속성을 조정할 때 더욱 직관적이고 효율적인 경험을 제공합니다. 그 결과, 시각적으로 훌륭하고 매끄럽게 작동하며 높은 커스텀이 가능한 세련된 인터페이스를 구현할 수 있습니다.
UXMLObjects: 효율적인 데이터 관리를 위한 객체
UXMLObjects는 UXML 파일 내에서 직렬화된 데이터(serialized data)를 직접 정의하고 관리할 수 있는 유연한 방법을 제공합니다. 이 기능을 통해 개발자는 대규모 데이터 구조에서도 가독성을 유지하면서, 재사용 가능하고 독립적인 UI 컴포넌트를 생성할 수 있습니다.
UXMLObjects를 사용하면 UI 요소가 직렬화된 데이터를 포함할 수 있으며, 이 데이터는 UI Builder에서 직접 저장하고 편집할 수 있습니다. 이를 통해 데이터 무결성(data integrity)을 유지하면서 UI의 서로 다른 부분에서 요소를 더 쉽게 재사용할 수 있습니다. 디자이너는 이러한 데이터 구조를 시각적으로 편집할 수 있어, 데이터 중심(data-driven) UI 컴포넌트를 위한 워크플로우를 간소화할 수 있습니다.
이 기능은 파이 차트(pie charts)와 같은 시각화 도구를 위한 데이터를 구성하는 등, UI 내에서 구조화되고 재사용 가능한 데이터 요소를 만드는 데 유용합니다. UXMLObjects 내에 데이터를 직렬화함으로써 개발자는 UI 디자인에 대해 조직적이고 모듈화된 접근 방식을 유지할 수 있으며, 크고 동적인 데이터 세트를 관리하는 과정을 더욱 효율적으로 만들 수 있습니다.
고급 텍스트 및 로컬라이제이션 (localization) 기능
UI Toolkit은 이제 다국어 및 이모지(emoji) 지원을 포함합니다. 이는 포괄적인 유니코드(Unicode) 및 고급 텍스트 셰이핑(text shaping) 기능을 제공하는 선택적 텍스트 생성기(text generator)를 통해 가능해졌습니다. 이를 통해 UI가 아랍어 및 히브리어와 같은 우측 정렬(RTL, right-to-left) 스크립트를 포함한 다양한 언어를 원활하게 지원하여 진정한 다국어 기능을 제공합니다.
이 새로운 텍스트 백엔드(backend)는 완전히 선택 사항(opt-in)이므로, 개발자는 향상된 로컬라이제이션의 혜택을 누리면서 자신만의 속도에 맞춰 전환할 수 있습니다.
매뉴얼에 문서화된 몇 가지 제한 사항이 있기는 하지만, 이 시스템은 프로젝트의 도달 범위를 넓히는 데 강력한 도구입니다. 업데이트된 로컬라이제이션 패키지 (Localization Package)를 통해 개발자는 새로운 다국어 지원을 완전히 활용하고 UI Toolkit 콘텐츠를 쉽게 로컬라이제이션할 수 있어, 게임을 여러 언어로 접근 가능하게 만들 수 있습니다. 새로운 바인딩 (bindings) 시스템과의 통합을 통해 이 기능을 UI Builder에서 직접 사용할 수 있으며, 결과적으로 다국어 프로젝트를 위한 원활하고 효율적인 워크플로 (workflow)를 제공합니다.
효율화된 워크플로 (Streamlined workflows)
Unity 6는 UI 개발을 더 빠르고 직관적으로 만들기 위해 여러 워크플로 개선 사항을 도입했습니다. 이러한 업데이트를 통해 개발자는 빠르게 반복 (iterate)할 수 있으며 디자인을 더욱 효율적으로 수행할 수 있습니다.
컨트롤 라이브러리 내 검색 (Search in the control library)
많은 수의 UI 요소와 커스텀 컨트롤이 포함된 복잡한 프로젝트의 경우 컨트롤 라이브러리를 탐색하는 것이 어려워질 수 있습니다. 이번 업데이트에서는 컨트롤 라이브러리 내에 빠르고 직관적인 검색 기능을 추가하여 UI 요소에 빠르게 접근할 수 있도록 했습니다. 이 기능은 Standard 섹션과 Project 섹션 모두에서 작동하여 필요한 항목을 더 쉽게 찾을 수 있게 해줍니다.
인라인 스타일을 셀렉터로 추출 (Extract inline styles to selector)
이제 인라인 스타일 (inline styles) 추출에 대해 더 많은 제어권을 갖게 되었습니다. 단순히 새로운 셀렉터 (selector)를 생성하는 것뿐만 아니라, 특정 값을 추출하여 기존 셀렉터에 적용할 수 있는 기능이 추가되었습니다. 이를 통해 셀렉터에 인라인 편집 내용을 중복해서 적용해야 하는 필요성을 크게 줄여주며, 변경 사항을 셀렉터에 '확정 (committing)'하기 전에 단일 요소에서 더 많은 실험을 할 수 있도록 해줍니다.
슬라이더를 위한 채우기 속성 (Fill attribute for sliders)
슬라이더 (sliders)에 채우기 (fill) 속성이 추가되어 기능을 확장하고 볼륨 컨트롤, 체력 바 (health bars) 등과 같은 시각적 요소를 만들 수 있습니다. 이 속성은 슬라이더에 채워진 영역을 활성화하며, 채우기 색상을 선택할 수 있는 옵션을 제공합니다.
이 새로운 속성은 코드에서도 지원되며, 예시는 다음과 같습니다:
성능 향상
Unity 6는 Editor 및 런타임 (runtime) 환경 모두에서 부드럽고 반응성이 뛰어난 경험을 보장하기 위해 광범위한 성능 개선 사항을 도입했습니다:
이벤트 디스패칭 (Event dispatching): 이벤트 디스패칭 규칙이 단순화되어 이해하기 쉬워졌으며, 속도는 두 배 더 빨라졌습니다.
메시 생성 (Mesh generation) 향상: 주요 개선 사항으로는 클래식 요소 기하학 (classic element geometry)을 위한 작업화된 (jobified) 기하학 생성과 벡터 API (vector API)의 네이티브 구현 (native implementation) 전환이 포함됩니다. 텍스트 생성 또한 이제 병렬화 (parallelized)되었습니다.
커스텀 기하학 API (Custom Geometry API): 새로운 공개 API를 통해 개발자가 동일한 수준의 성능으로 커스텀 기하학을 생성할 수 있어, 고도로 최적화된 UI 컴포넌트를 만들 수 있습니다.
깊은 계층 구조 레이아웃 성능 (Deep Hierarchy Layout Performance): 레이아웃 계산의 캐싱 (caching) 기능이 개선되어 깊은 계층 구조에서의 성능이 크게 향상되었으며, 더욱 부드러운 사용자 경험을 제공합니다.
대규모 데이터 세트를 위한 TreeView 최적화: 이전에는 대규모 데이터 세트에서 비효율적이었던 TreeView 컨트롤이 Entities를 위해 특별히 설계된 새로운 고성능 백엔드 (backend)로 강화되었습니다.
UI Toolkit으로 제작된 콘텐츠를 최적화하는 방법에 대한 팁은 Unite 2024의 이 브레이크아웃 세션 (breakout session)을 참조하십시오.
우리는 성능을 최우선 과제로 유지하기 위해 전념하고 있습니다. Unity가 반응성이 높고 고성능인 사용자 인터페이스를 제작하기 위한 최고의 플랫폼으로 남을 수 있도록, 향후 업데이트에서 더 많은 최적화 사항을 기대해 주십시오.
결론
Unity 6는 정교하고 고품질인 UI를 제작하는 능력을 크게 향상시킬 수 있는 수많은 새로운 기능과 개선 사항을 제공합니다.
인디 개발자이든 대규모 스튜디오의 일원이든, 성능(Performance), 워크플로(Workflow), 그리고 커스터마이징(Customization) 측면의 발전은 여러분이 가능성의 한계를 뛰어넘을 수 있도록 설계되었습니다.
시작하기 및 학습하기
UI Toolkit을 시작하고 싶다면, 전체 문서(Documentation)와 튜토리얼(Tutorials)을 탐색하는 것부터 시작하십시오. 또한 커뮤니티에 참여하여 다른 이들로부터 영감을 얻고 여러분의 프로젝트를 공유해 보세요.
QuizU를 통해 UI Toolkit의 개념을 학습하거나, UI Toolkit Dragon Crashers를 통해 완전한 게임 샘플을 탐색할 수 있습니다. 샘플과 함께 제공되는 다음 자료들도 놓치지 마십시오:
- 프로그래머를 염두에 둔 QuizU 토론(Discussions) 기사 및 샘플 비디오 개요
- E-book, 'Unity에서의 사용자 인터페이스 디자인 및 구현(User interface design and implementation in Unity)' 및 샘플 비디오 개요
AI 자동 생성 콘텐츠
본 콘텐츠는 Unity Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기