🎮 Unity 개발/Unity

유니티 UGUI (Unity UI) 컴포넌트

gameuiux 2025. 6. 2. 23:19
728x90
반응형

📦 1. 기본 렌더링 컴포넌트

컴포넌트 설명
Canvas
UI 렌더링의 root.
모든 UGUI는 이 안에 존재한다.
CanvasRenderer
UI를 그리기 위한 필수 컴포넌트
Image, Text 등에 자동으로 포함된다.
Graphic (추상 클래스) UGUI 시스템에서 모든 시각 요소의 핵심 기반 클래스
Image, Text, RawImage, TextMeshProUGUI 같은
UI 요소들은 전부 이 Graphic을 상속한다.
CanvasGroup
투명도 조절, 상호작용 차단, 일괄 Fade 처리 가능

 

 

🧱 Graphic이란?
Graphic은 추상 클래스이며, 색상 처리, 클릭 감지 여부, 머티리얼 제어, 캔버스 렌더 같은 공통 기능을 제공합니다.

기능 설명
색상 (color) 텍스트, 이미지 등 공통으로 색상 지정 가능
레이 캣칭 (raycastTarget) UI 요소가 클릭/터치 등 입력 이벤트를 받을지 여부
마테리얼 지정 커스텀 셰이더를 적용해 효과 변경 가능
캔버스 렌더링 통합 CanvasRenderer와 함께 작동하여 UI를 배치하고 그리기
SetAllDirty() 레이아웃, 머터리얼, 베지어 업데이트 요청 (내부에서 씀)

 

 

📚 주요 상속 구조

Graphic (추상)
  ㄴ MaskableGraphic(마스킹을 지원하는 그래픽 요소를 위한 서브클래스)
         ㄴ Image
         ㄴ  RawImage
         ㄴ  Text
         ㄴ  TextMeshProUGUI (실제로는 외부에서 연결)

 


 

🎨 2. UI 요소 (시각적 요소)

컴포넌트 설명
Image 스프라이트 이미지 표시 (9-slice 등 가능)
RawImage 텍스처(Texture) 직접 표시
Text (Legacy) 레거시 UI 텍스트 (권장 ❌)
TextMeshProUGUI 선명한 텍스트 표시 (권장 ✅)
Mask 자식 UI를 잘라냄 (Rect 기준 마스킹)
RectMask2D RectTransform 기준 마스킹 (스크롤뷰용 추천)

 

🧱 3. 레이아웃 시스템

컴포넌트 설명
RectTransform UGUI에서 위치/크기 제어용 Transform
Layout Element 레이아웃에 대해 min/preferred/flexible 사이즈 지정
ContentSizeFitter 자식 콘텐츠 크기에 따라 자동 크기 조정 (주의)
Horizontal Layout Group 가로 정렬 자동 배치
Vertical Layout Group 세로 정렬 자동 배치
Grid Layout Group 격자 형태로 자식 배치
Aspect Ratio Fitter 비율 유지하며 크기 조정 (ex: 정사각형 유지 등)

 

 

🖱️ 4. 인터랙션 (버튼/입력)

컴포넌트 설명
Button 클릭 이벤트 처리
Toggle 체크박스 또는 On/Off 스위치
Slider 드래그 가능한 슬라이더
Scrollbar 스크롤바
Dropdown 선택 가능한 드롭다운 목록
InputField 텍스트 입력 (기본 버전)
TMP_InputField 텍스트 입력 (TextMeshPro 버전) ✅
Selectable 위의 컴포넌트들의 공통 부모, 포커스/상태 제어
EventTrigger 다양한 이벤트 직접 연결 (PointerEnter 등)

 

 

🧭 5. 스크롤/마스크/패널

컴포넌트 설명
Scroll Rect 스크롤 가능한 콘텐츠 영역
Scrollbar 수동으로 스크롤바 만들 때 사용
Mask / RectMask2D 스크롤뷰나 클리핑용 마스크
Panel (실제 컴포넌트는 아님) 단순 빈 Image 오브젝트로 쓰는 그룹 UI 컨테이너

 

 

🎛 6. 기타 유틸리티

컴포넌트 설명
Graphic Raycaster UI 클릭 감지를 위한 이벤트 처리기
EventSystem UGUI 입력을 전역 관리하는 시스템
Standalone Input Module 마우스, 키보드 입력 지원
Touch Input Module 터치 입력 처리

 

 

📌 참고 흐름 (일반 팝업 구조)

Canvas
 ㄴ Panel (Image + VerticalLayoutGroup + ContentSizeFitter)
       ㄴ  Text (TextMeshProUGUI)
       ㄴ   Button
       ㄴ   ...

728x90
반응형