Unity 카메라 여러대 한 화면에서 보는 방법과 코드를 통해 카메라 전환하는 방법에 대해서 알아보겠습니다.

FPS 장르나 RTS 또는 레이싱 게임을 보면 다양한 시점에서 카메라를 보여줘야 하는 경우가 있습니다.

그리고 여러개의 카메라 정보를 한 화면에 보여줘야 할 때도 있는데요.

카메라가 왠지 메인 카메라 한대만 있어야 한다고 생각할 수 있지만, 유니티에서는 여러대를 동시에 사용할 수 있으며 해당 카메라 정보를 한 화면에 표시할 수 있습니다. (너무 당연한가요?)

 

unity 카메라 여러대 한 화면에 보기

 

우선 3개의 카메라 정보를 한 화면에 표시해보겠습니다.

이때 레이아웃에 따라서 순서를 잘 배치하는 것이 중요합니다.

 

메인 카메라를 제일 위에(레이어상 제일 아래) 놓고, 카메라 2와 3을 추가했습니다.

특별히 다른 오브젝트를 쓰지 않고 간단히 예시를 들 것이므로, 카메라 백그라운드를 Skybox가 아닌 solid color로 해서 각각 다른 색을 사용해서 표현했습니다.

메인 카메라는 파란색, 카메라2는 자주색 그리고 카메라3는 초록색 계열로 대략 설정을 하였습니다.

현재 상태에서는 제일 마지막에 설치한 카메라3의 색인 초록색으로 화면이 덮혀있습니다.

이제 각각 카메라 크기 및 위치를 배열할 차례입니다.

 

카메라 크기 및 위치 변경은 Camera 속성의 viewport rect를 조정해서 할 수 있습니다.

 

1. 카메라 2 오른쪽 하단의 미니맵 정보 보여주기 설정

 

viewport 속성이 처음에는 x:0, y:0, w:1, h:1로 설정이 되어 있습니다.

각각 x, y는 x축 그리고 y 축으로 위치를 나타내며 가장 작은 값은 0(왼쪽 또는 아래쪽)이며 가장 큰 값은 1입니다.

즉 화면을 1이라는 기준 안에서 적절한 위치를 조절해야 합니다.

그리고 카메라 뷰포트의 w, h는 넓이와 높이입니다. 화면 크기라고 생각하면 더 편리합니다.

오른쪽 하단에 미니맵 처럼 표시하기 위해 위 이미지와 같이 설정을 했습니다.

 

2. 카메라 3 왼쪽 상단에 뒤 카메라 설정하기

카메라2와 마찬가지 방법으로 위 이미지처럼 설정하면, 세대의 카메라가 보여주는 화면은 아래와 같습니다.

많이 익숙해보이는 그럴듯한 화면이 나옵니다.

이제 특정 키를 누르면 뒤를 보는 카메라가 메인으로 보여지게 하도록 스크립트를 간단히 작성해보겠습니다.

 

카메라 크기 변환 스크립트로 하기

 

먼저 GameObject를 하나 생성한 뒤, 이름을 CameraManager라고 이름을 짓겠습니다.

그 다음 CameraManager에게 같은 이름의 클래스를 가진 C# 스크립트를 추가합니다.

작성한 코드는 아래와 같습니다.

스페이스 바를 누르면 뒤를 보는 카메라(backCam)이 전체 화면으로 보이고, 다시 스페이스바를 누르면 원래 상태로 돌아가는 것입니다.

 

backCam은 public으로 선언해서, Hierachy 상에서 Camera3를 인스펙터로 드래그해서 설정했습니다.

isbackCam은 현재 camera3가 전체 화면으로 전환 할 것인지를 체크합니다.

그리고 클릭 인터벌을 줬는데요. 그 이유는 업데이트가 너무 빠르기 때문에, 잘 표현이 안되어서 0.5초마다만 적용이 되도록 하기 위해서 관련 변수들과 시간 흐름에 관련된 함수를 추가했습니다.

 

코드 상에서 카메라 viewport를 조절하려면 해당 카메라의 rect 속성을 Rect를 이용해서 설정합니다.

이때 new를 붙여서 해야 합니다. 즉, 기존에 있던 요소의 값을 새것으로 변경한다고 보면 됩니다.

 

그럼 이렇게 해서 만들어진 화면을 한번 보겠습니다.

잘 됩니다. 유니티 카메라 여러대 한 화면에 보이기의 간단한 예시였습니다.

 

2021.03.25 - [프로그래밍] - 유니티 페이스북 SDK 배포용 키해시 등록 방법

 

유니티 페이스북 SDK 배포용 키해시 등록 방법

유니티 프로젝트에 페이스북 SDK를 사용했을때, 가장 처음 당황(물론 그 전에도 구글 resolver 맞추느라 고생하지만)하는 부분이 바로 페이스북 해시키입니다. 분명히 프로젝트에 페북 SDK 붙일때 fa

rich-informer.tistory.com

2021.03.22 - [프로그래밍] - [유니티] 일주일간 보지 않기 팝업 만들기

 

[유니티] 일주일간 보지 않기 팝업 만들기

유니티로 게임이나 어플을 만들때, 이벤트 팝업을 노출하는 일이 많습니다. 매번 이벤트 팝업이 나오면 사용자들의 경험상 좋지 않기 때문에 토글 체크 메뉴를 이용해서 7일간 보지 않기 같이

rich-informer.tistory.com

+ Recent posts