[Unity UI Toolkit] # 0. 개요

문연수·2022년 11월 12일
0

Unity UI Toolkit

목록 보기
1/4

https://docs.unity3d.com/2021.3/Documentation/Manual/UIElements.html

Unity 버전 2021.3 공식 문서를 번역하여 작성한 글입니다. 처음 보는 용어들이 너무 많아서 잘 모르는 용어는 외주로 원어를 표기했습니다.

1. UI Toolkit 이란?

UI Toolkit 은 유저 인터페이스(UI) 개발을 위한 기능, 자원, 그리고 도구들의 집합이다. UI Toolkit 은 커스텀 UI 와 유니티 에디터의 확장, 런타임 디버깅 도구, 그리고 게임과 애플리케이션의 런타임 UI 를 개발하는데 사용할 수 있다.

2. UI 시스템

 UI Toolkit 의 핵심은 유지 모드? (retained-mode) UI 시스템으로 알려진 웹 기술들 기반으로 한다. 이는 스타일시트 그리고 동적, 그리고 맥락적 이벤트 처리(contextual event handling) 를 지원한다.

UI 시스템은 이하의 기능을 포함한다:

  • Visual tree: 경량형 노드들로 구성된 객체 그래프이며 이는 윈도우와 패널의 모든 요소들을 포함할 수 있다. 이는 UI Toolkit 을 통해 빌드하는 모든 UI 에 정의되어 있다.
  • Controls: 표준 UI 컨트롤 라이브러리에는 버튼, 팝업, 리스트뷰, 그리고 컬러 픽커가 있다. 그대로 사용하거나, 이를 커스터마이즈 하거나, 새로운 컨트롤을 만드는데 사용할 수 있다.
  • Data binding system: 값을 수정할 수 있는 컨트롤에 속성을 연결하는 시스템이다.
  • Layout engine: CSS Flexbox 모델에 기반하는 레이아웃 시스템이다. 이는 레이아웃과 스타일링 속성에 기초하여 요소들을 위치시킨다.
  • Event System: 입력, 터치, 그리고 포인터 인터랙션, 드래그-드랍 수행, 그리고 그 외 다른 이벤트 타입의 유저 반응에 따라 요소들과 상호작용하는 시스템이다.
  • UI Renderer: 유니티의 그래픽 장치 레이어 최첨단에 설계된 렌더링 시스템이다.
  • UI Toolkit Rntime Support: 런타임 UI 생성을 위한 구성요소들의 집합이다.

3. UI assets

이하의 에셋 유형을 사용하여 웹 애플리케이션 개발과 유사한 방식으로 UI 를 만들 수 있다:

  • UXML documents: HTML 과 XML 은 UI 와 재사용 가능한 UI 템플릿 구조를 정의하는 마크업 언어에 영향을 받았다. 비록 C# 파일을 이용해서 바로 인터페이스를 구성할 수 있지만, Unity 는 가능하다면 UXML 문서를 사용하길 권한다.
  • Unity Style Sheets (USS): 스타일시트는 비주얼 스타일과 UI 의 동작에 적용된다. 이는 웹에서 사용되는 중첩된 스타일 시트 (Cascading Style Sheets; CSS) 와 비슷하며 표준 CSS 속성들의 하위 속성을 지원한다. 비록 C# 파일을 통해 직접 스타일을 적용할 수 있으나, Unity 는 가능하다면 USS 파일을 사용하길 권한다.

4. UI tools and resources

이하의 도구들을 인터페이스의 생성과 디버깅에 사용하고, 어떻게 UI Toolkit 을 사용하는지 배워라.

  • UI Debugger: 웹 브라우저의 디버깅 뷰와 유사한 진단 도구이다. 이를 계층적 요소들을 탐색하고 그 기저에 있는 UXML 구조와 USS 스타일의 정보를 취득하는데 써라. 이는 Window > UI Toolkit > Debugger 에서 찾을 수 있다.
  • UI Builder: UXML 과 USS 파일들과 같은 UI Toolkit 에셋들을 가시적으로 수정하고 생성할 수 있게 하는 UI 도구.
  • UI Samples: 에디터의 Window > UI Toolkit > Samples 아래에서 볼 수 있는 UI 컨트롤에 대한 샘플 라이브러리 코드.

출처

[사이트] https://docs.unity3d.com/2021.3/Documentation/Manual/UIElements.html

profile
2000.11.30

0개의 댓글