Unity에서 두 개 이상의 카메라 사용하기
이 문서는 Unity에서 여러 개의 카메라를 사용하는 방법에 대한 설명을 담고 있습니다. 기본적으로 Unity 씬에는 하나의 카메라만 있지만, 필요에 따라 여러 카메라를 활용하여 다양한 뷰를 제공할 수 있습니다.
카메라 전환
Unity에서 기본 카메라는 씬을 전체적으로 커버합니다. 그러나 때때로 다른 뷰를 제공하기 위해 카메라를 전환할 필요가 있습니다. 이는 스크립트를 통해 간단히 구현할 수 있습니다.
카메라 전환 예제
위와 같은 경우, 한 카메라의 뷰를 비활성화하고 다른 카메라의 뷰를 활성화할 수 있습니다.
using UnityEngine;
public class ExampleScript : MonoBehaviour {
public Camera firstPersonCamera;
public Camera overheadCamera;
// 이 함수를 호출하면 FPS 카메라 비활성화 및 오버헤드 카메라 활성화
public void ShowOverheadView() {
firstPersonCamera.enabled = false;
overheadCamera.enabled = true;
}
// 이 함수를 호출하면 FPS 카메라 활성화 및 오버헤드 카메라 비활성화
public void ShowFirstPersonView() {
firstPersonCamera.enabled = true;
overheadCamera.enabled = false;
}
}
큰 카메라 뷰 안에 작은 카메라 뷰 렌더링
주로 전체 씬을 보여주는 카메라 뷰가 필요하지만, 작은 영역에 추가 뷰를 보여주는 것이 유용할 수 있습니다. 예를 들어, 주행 게임에서는 백미러를 표시하거나, 1인칭 뷰와 함께 화면 corner에 오버헤드 미니 맵을 보여주는 방식입니다.
뷰포트 사각형 설정
카메라의 뷰포트(rect)의 크기를 설정하기 위해 Viewport Rect
속성을 사용할 수 있습니다. 뷰포트 사각형의 좌표는 정규화되어 있으며, 다음과 같습니다:
좌표 | 값 |
---|---|
왼쪽 끝 | 0.0 |
아래 끝 | 0.0 |
오른쪽 끝 | 1.0 |
위쪽 끝 | 1.0 |
중앙 | 0.5 |
뷰포트 크기 외에도 카메라의 depth
속성 값 또한 작은 뷰의 배경 카메라보다 높게 설정해야 합니다. 더 높은 depth 값을 가진 카메라가 낮은 값의 카메라보다 먼저 렌더링됩니다.
활용 및 응용 예제
- 스포츠 게임: 다양한 뷰를 제공하기 위해 여러 카메라를 활용할 수 있습니다. 예를 들어, 플레이어의 시점, 경기장 전체 뷰, 그리고 해설자 카메라 등.
- 전략 게임: 전체 지도를 보여주는 카메라와 특정 지역의 세부 정보를 보여주는 카메라를 동시에 사용할 수 있습니다.
- 1인칭 슈팅 게임: 무기 아이콘이나 상태 정보를 화면 구석에 표시하기 위해 두 번째 카메라를 사용할 수 있습니다.
이렇게 Unity에서는 다양한 방식으로 카메라를 활용하여 다채로운 사용자 경험을 제공할 수 있습니다.