UGUI (Unity Graphic User Interface)
- UGUI
- 직관적인 UI 요소들의 Depth를 알 수 있다.

- UI 요소들은 Canvas 단위로 Draw-Call이 일어난다.
- Canvas의 UI 요소들은 Canvas Renderer를 통해 Redering 되므로
- Canvas 내의 같은 Material / Shader를 사용하는 요소들끼리 묶어 Draw-Call을 하려고 한다.
- 직관적인 UI 요소들의 Depth를 알 수 있다.
- Canvas (GameObject로써의 Canvas)

- UI 요소들을 Rendering하는 기본 단위, UI 요소들을 배치하는 영역
- Canvas는 자식 Canvas를 가질 수 있으며 “별도의 Draw Call”이 발생 할 수 있다.
- Hierarchy에서 Canvas의 자식들 중 제일 아래쪽에 있는 자식부터 앞 쪽에 Render 된다.
- EventSystem
- Canvas를 생성하면 자동으로 생성되는 Object이다.
- “Canvas”의 Component인 “Graphic Raycaster”를 통해 Canvas내의 UI 요소들과 충돌 같은 상호 작용을 처리한다.
(Graphic Raycaster : Canvas Object 하위에 배치된 UI 요소들에 광선을 쏴서 충돌 처리를 한다.)
- Rect Transform

- UI 전용 2 차원 Transform이다.
- Resize 하는 경우, “Width”와 “Height”만을 수정하는 것을 권장한다.
(Width : 사각형의 폭 조절 / Height : 높이를 결정) - Anchor Preset에서 Alt를 누르면 Anchor 수정과 동시에 Resize 할 수 있다.
- Pivot
- UI 요소의 중심점을 나타내는 정보
- Anchor
- 부모-자식의 구조를 가지는 Rect Transform이 있을 때, “자식을 부모의 특정 변 (edge)이나 꼭지점 (vertex)에 고정 시킬 수 있는 기능”
- 부모-자식의 구조를 가지는 Rect Transform이 있을 때, “자식을 부모의 특정 변 (edge)이나 꼭지점 (vertex)에 고정 시킬 수 있는 기능”
- Canvas (Component로써 Canvas)

- UI가 배치되고 Render되는 추상적인 공간
- 3가지의 Render 방식을 지원하며, “Draw Call에 영향을 준다" (Render 되는 방식에 따라, 어떤 것을, 어떻게 그릴지 달라지니깐)
- Screen Space - Overlay
- UI 요소가 World의 Object들보다 항상 앞 쪽에 그려지게 된다.
- Screen Space - Camera
- UI 요소가 Camera와 설정한 Distance만큼 떨어진 곳에 그려진다.
- Viewport안에 그려지게 되며, UI 요소와 Camera 사이에 오브젝트가 있으면 가려지게 된다.
- World Space
- UI 요소가 3D 월드의 오브젝트처럼 다뤄지게 된다.
- UI 요소가 Camera 시야 안에 있어야 그려지게 된다.
- Screen Space - Overlay
- Canvas Scalar
- Canvas에 배치된 모든 요소들의 크기와 Pixel 밀도를 설정한다.
- Canvas Scalar는 Font 크기, Image 크기와 같은 모든 요소들에 영향을 주니 반드시 먼저 설정해 주어야한다.
- Scale 되는 방식은 3가지가 있다.
- Constant Pixel Size
- 화면 크기와 관계 없이, UI 요소의 크기/위치가 단순 Pixel에 대한 배율로 지정된다. (Reference Pixel Per Unit)
- Scale With Screen Size

해상도가 달라져도 UI 크기의 비율을 자동으로 맞춘다. - 화면 크기에 따라 UI 요소들의 위치/크기가 결정된다. (Vector 이미지 처럼 자동으로 Resize)
- 모바일 해상도가 제각각이라 모바일 게임에서 많이 쓰인다.
- 아래와 같은 속성들을 가지고 있다.
- Reference Resolution
- 기준이될 적정 해상도를 설정
- Screen Match Mode
- 화면의 종횡비가 Reference Resolution과 같지 않을 경우 Canvas 영역 조정을 어떻게 할지 설정하는 옵션
- Match Width or Height
- Canvas의 Width 또는 Height를 기준으로 Canvas 영역을 설정한다.
- Match 변수는 어느 쪽에 더 정확하게 맞출 것인지 설정하는 Factor
- Expand
- Canvas의 Width / Height를 확장한다.
- Shrink
- Canvas가 Reference Resolution보다 커지지 않게 Canvas를 수평 or 수직으로 자른다.
- Match Width or Height
- 화면의 종횡비가 Reference Resolution과 같지 않을 경우 Canvas 영역 조정을 어떻게 할지 설정하는 옵션
- Reference Resolution
- Constant Physical Size
- 화면의 크기에 관계 없이 UI 요소가 동일한 물리적인 크기로 유지된다.
- Constant Pixel Size
유니티 조명
- Unity에서 물체에 셰이더 연산을 하기 위한 조명 정보 (빛 방향, 색, 빛 세기)는 “광원” 오브젝트가 제공한다.
- 광원은 “Real-Time”과 미리 계산된 “Baked” 두 가지가 있다.
- “Real-Time” 광원은 반사광을 계산하지 않으며, 매 프레임 업데이트한다.
- Texture의 Texture Type을 Cookie로 설정하여 빛의 형태를 변경할 수 있다.
'CS > Unity' 카테고리의 다른 글
| [멋쟁이사자처럼 유니티 게임 개발 3기 TIL] LINQ, Command Pattern (1) | 2024.12.05 |
|---|---|
| [멋쟁이사자처럼 유니티 게임 개발 3기 TIL] Stack, Custom Editor (0) | 2024.12.04 |
| [멋쟁이사자처럼 유니티 게임 개발 3기 TIL] LinkedList, Iterator (1) | 2024.12.03 |
| [멋쟁이사자처럼 유니티 게임 개발 3기 TIL] C# Lambda (0) | 2024.12.02 |
| [멋쟁이사자처럼 유니티 게임 개발 3기 TIL] Physic Material, Rigidbody, Animation, Scene (0) | 2024.11.28 |
