Unity UI

램해·2025년 5월 12일
0

UI 구성요소

NGUI

Unity 외부 개발자가 만든 유료 에셋입니다. 좌표계가 직관적이지 않고 복잡한 설정 필요하고, 유료 에셋스토어에서 판매, 현재는 사용 빈도가 많이 줄었음.

UGUI

Unity 공식 내장 UI 시스템에다가 무료이고 Unity와 완벽하게 통합되었기에 UGUI를 권장함.

Anchor

UI 요소가 부모(RectTransform)를 기준으로 어디에 고정되는지를 정하는 기준점입니다.
부모의 크기가 바뀌어도, 자식 UI의 위치나 크기를 어떻게 반응시킬지 결정합니다.

Pivot

UI 오브젝트 자체의 기준점(회전, 크기, 위치 계산 기준)입니다.
회전, 스케일, 위치가 적용될 때 어떤 점을 기준으로 할지를 정하고, UI 요소가 Anchor 위치에 붙고 난 뒤, 그 안에서 어느 지점을 기준으로 위치할지를 결정한다.

TextMeshPro(InputField)

텍스트를 더 선명하고 유연하게 표현할 수 있도록 해주는 고급 텍스트 렌더링 시스템이다.
벡터 기반 텍스트 렌더링, 스타일 지정, 서식 지원, 성능 최적화까지 지원하는 텍스트 솔루션이다.

MVP(Model-View-Presenter)

UI와 로직을 분리해서 코드를 더 깔끔하고 테스트하기 쉽게 만드는 디자인 패턴이다.

Model : 애플리케이션의 비즈니스 로직과 데이터 처리 담당
View : UI 요소 (Button, Text 등)를 표시하고 사용자 입력을 Presenter에 전달
Presenter : Model과 View를 연결. View로부터 사용자 이벤트를 받아 Model을 변경하고, 다시 View를 갱신함

  1. 유지보수성 증가
    View와 Model을 명확히 분리하면, UI가 수정되어도 Model에 직접적인 영향을 주지 않으며, Model이 변경되어도 UI 로직이 혼란스러워지지 않습니다.
  2. 테스트 편의성
    Presenter와 Model은 Unity 엔진을 거치지 않고도 독립적인 단위 테스트가 가능합니다. UI를 띄우지 않고도 Model과 Presenter가 제대로 동작하는지 확인할 수 있습니다.
  3. 확장성 및 재사용성
    동일한 Model을 여러 View에서 재활용하거나, Presenter 로직만 일부 교체하여 다양한 UI를 만들 수 있습니다
    Presenter: Model과 View 사이를 연결하는 중재자(mediator)입니다. View로부터 입력 이벤트를 받으면 Model을 업데이트하고, Model의 결과를 다시 View로 전달해 화면을 갱신하는 일을 맡습니다.

MVC(Model - View - Controller)

Model : 데이터와 비즈니스 로직을 담당합니다. View나 Controller와는 직접적인 연결 없이 순수한 데이터를 처리합니다
View : UI 표시와 업데이트만 담당합니다. 사용자의 입력은 받지 않고, 단순히 Model의 상태를 UI에 반영합니다
Controller : 입력 처리와 로직 제어를 담당합니다. 사용자 입력을 받아 Model을 변경하고 View를 갱신합니다. MVC에서 가장 많은 역할을 맡습니다.

장점
역할 분리 : UI, 로직, 데이터 각각 관리 → 유지보수 용이
재사용성 : Model이나 View만 교체 가능
테스트 용이 : Model은 UI 없이 테스트 가능

MVVM(Model - View - ViewModel)

Model : 게임 데이터 및 비즈니스 로직 담당. View나 ViewModel을 모르고, 독립적임
ViewModel : View와 Model의 중간 다리. View와 연결되는 속성을 바인딩 형태로 노출.
View : UI를 그리는 역할. ViewModel의 속성을 구독해서 자동으로 UI를 업데이트

장점
바인딩 기반 : UI 자동 업데이트 → 코드 단순화
높은 테스트성 : ViewModel만 테스트 가능 (View 없이도 테스트 O)
역할 명확 : View는 UI만, 로직은 ViewModel이 전담

0개의 댓글