프로그래밍 농장

UGUI [Unity] 본문

Unity

UGUI [Unity]

Tennessee201 2022. 8. 22.
728x90

UGUI는 유니티의 공식 UI 시스템이다. 이것이 존재하기전에는 lEGACY ui가 존재햇으며, 이는 Update문에서 매 프레임마다 그려주는 방식으로 수행하였다.  이러한 방식때문에 플레이를 하기전까지는 유니티상에 어떻게 그려질줄을 확인할수없었다. 

-> 그렇게 등장한 UGUI 는 UI 요소를 게임오브젝트나, 컴포넌트로서 만들어주고, 이를 게임오브젝트의 인스펙터상에서 설덩하고 확인할수있도록 구현한것이다. 


기본적으로 UI 오브젝트들은 Canvas 오브젝트 내에서 그려져야한다. 

아래와 같이 UI중 하나인 Image를 생성하게되면 자동으로 캔버스와 이벤트시스템이 생성된다. 

EventSystem : UI에 대한 터치나 클릭등의 작업을 수행하도록 하는 것 

Canvas : 모든 UI 오브젝트들을 가지고있는 '스크린'

유니티상의 1pixel(unit) = 1m 


Canvas는 3가지의 렌더모드를 가진다. 

1. ScreenSpace - Overlay : UI요소들이 스크린상에서만 존재하다가, 모든 3D Object가 그려진 후, 마지막으로 UI 오브젝트들을 덮어씌우는 방식으로 동작한다.

UI가 마지막에 그리며 덮어준다.

2. ScreenSpace - Camera : 캔버스가 카메라에 대응하는 3D 좌표상에서 위치값을 가지게 된다. 

3. WorldSpace : 완전히 UI 오브젝트, Canvas자체를 3D 오브젝트처럼 다룰수있다 ( 좌표값, 등등.. 을 가짐 )  

 

-> 보통은 ScreenSpace-overlay를 사용하며,

-> 파티클효과나 3d 오브젝트를 ui나 카메라상에 표현하고싶다면 ScreenSpace-camera,

-> ui요소를 증강으로서 사용하고 싶다면 WorldSpace를 쓴다. 


- UI요소를 배치할때 필요한 Anchor Pivot Position 에 대한 개념

- 앵커 : UI 요소의 원점(0,0) 위치를 정한다.

- 피벗 : UI 요소 내부의 기준점을 정한다.

- 위치 : 앵커와 피벗을 기준으로 결정한 좌표 

 

앵커 : 파란색(Canvas)를 기준으로 UI의 원점(0,0)를 정한다. 

만약 위와 같이 앵커값 1,1 이 원점이지만, 캔버스의 가로세로만큼 X,Y값을 빼주면 위와 같이 0,0으로 간다.

 

피벗 : 앵커와 달리 자기자신을 기준으로 아래와 같이 잡으며, 피벗값은 기본적으로 정중앙에 위치한다. 

만약 위와 같이 피벗을 1,1로 잡았을경우, 자기자신의 1,1 위치가 무게중심의 정중앙이 된다.

포지션 : 위의 앵커와 피벗에 의해서 정해지는 최종적인 위치이다. 


 

 

 

 

 

 

 

 

 

728x90