본문 바로가기
Unity/API - RectTransform

RectTrnasform 이해하기: Canvas - ScreenSpace

by PlaneK 2020. 8. 14.

Canvas  - ScreenSpace

ScreenSpace는 WorldSpace랑 다르게 Screen 공간에서 고정인 좌표이다.

모바일 디스플레이나 모니터 디스플레이에 붙어서 떨어지지 않는 좌표이다.

언제나 좌측 하단 (0,0), 우측 상단 (디스플레이 해상도)의 좌표 범위를 벗어나지 않는다.

ScreenSpace - Camera

카메라가 WorldSpace 좌표계 (x, y, z) (-1, -1, 0) 위치했다. Canvas의 RenderMode ScreenSpace - Camera 설정되면 일단 해당 Canvas width height 디스플레이(Screen)를 가득 채운다. 그리고 Canvas 피벗에 상관없이 정중앙은 카메라의 가운데에 위치한다.

Scale 임의로 조정할 수 없다. Canvas 옵션 Plane Distance 의해 자동 조정된다. Plane Distance가 변해도 디스플레이를 가득 채우기 위해 Scale이 가변한다.

, ScreenSpace - Camera RectTransform 임의로 조정할 없다. Plane Distance만 가능하다. 그리고 해당 캔버스는 Screen 디스플레이 가득채워진다.

Screen 해상도(width, heihgt) (12,10) 이라 해보자. 카메라의 위치가 (-1, -1, 0)인 canvas는  WorldSpace 상에서 보면 위와 같다.

Panel이라는 Canvas의 하위 개체를 만들어보자. ScreenSpace - Camera WorldSpace 마찬가지로 하위개체는 상위개체의 좌표계를 따른다.

scale의 정보는 육안으로 알 수 없다. 그래서 panel의 WorldPosition을 칸의 갯수로는 쉽게 알 수 없다.

반면 panel의 localPosition은 canvas좌표의 칸의 갯수 panel의 피벗을 쉽게 알 수 있다. (4.5, 3.5)

만약 canvas의 scale이 0.5라면 worldPosition은 (4.5, 3.5) / 1.5 = (3, 2.3) 이다.

ScreenSpace - Overlay

Canvas WorldSpace 좌표계를 따른다.

width height Screen 해상도에 맞춰진다

예를들어, 해상도가 1280 x 720 이라면 widthheight는 (1280, 720)이 된다.

대신 Camera 다르게 Scale Z축은 고정이다.

여러 스크린이 겹쳐있다면 z축대신 Sort Order 조정된다.

 

댓글