07
22

Rect 프로퍼티는?

카메라 뷰포트(Viewport)의 영역을 정의하는데 사용되며, 뷰포트는 카메라가 보는 화면 영역을 의미한다.

rect 속성은 Normalized Device Coordinates(NDC)를 사용하여 뷰포트 영역을 정의하는데,
이는 화면을 0과 1 사이의 값을 가지는 좌표로 나타내는 방식이다.

Rect 구조체로 정의되며, 뷰포트의 왼쪽 하단 모서리를 기준으로 상대적인 위치와 크기를 지정한다.

구조체 살펴보기

사용할 때는
new Rect
(normalized X screen position, normalized Y screen position,
nomalized screen width, normalized screen height);

  • x: 뷰포트의 왼쪽 하단 모서리의 x 좌표를 나타낸다. 0과 1 사이의 값을 가지며, 0은 왼쪽 끝, 1은 오른쪽 끝을 의미한다.
  • y: 뷰포트의 왼쪽 하단 모서리의 y 좌표를 나타낸다. 0과 1 사이의 값을 가지며, 0은 아래쪽 끝, 1은 위쪽 끝을 의미한다.
  • width: 뷰포트의 가로 길이를 나타낸다. 0과 1 사이의 값을 가지며, 1은 뷰포트의 가로 길이가 화면 전체를 차지함을 의미한다.
  • height: 뷰포트의 세로 길이를 나타낸다. 0과 1 사이의 값을 가지며, 1은 뷰포트의 세로 길이가 화면 전체를 차지함을 의미한다.

활용되는 곳은?

rect 속성을 사용하여 분할 화면(Multi-view)을 구성하거나, 특정 부분만 화면에 출력하는 기능을 구현할 수 있다.

특정 시점에서 카메라의 뷰를 전환하여 게임 플레이를 다양하게 제공할 수 있다.

예제 코드

와이프가 같이 해주지 않아 못했던 It takes two 를 영상으로 보기만 했는데 해당 게임처럼 두 화면으로 분할하려면 간단하게 아래처럼 생각해볼 수 있겠다.
Camera player1Camera; // 플레이어 1의 카메라

void Start()
{
    // 카메라 뷰를 절반으로 분할하여 플레이어 1에게 할당
    player1Camera.rect = new Rect(0f, 0f, 0.5f, 1f);
}

Camera player2Camera; // 플레이어 2의 카메라

void Start()
{
    // 카메라 뷰를 절반으로 분할하여 플레이어 2에게 할당
    player2Camera.rect = new Rect(0.5f, 0f, 0.5f, 1f);
}
COMMENT