어떤 게임에 구현되어 있을까?
GTA5 처럼 기본 3인칭 시점의 게임에서 특정 미션 등을 진행할 때나 특정 사물과 상호작용할 때
1인칭 시점으로 바뀌곤 한다.
절차
1인칭 시점과 3인칭 시점에 해당하는 두 개의 카메라를 미리 준비한다.
1인칭 시점 카메라는 보통 캐릭터 머리 뒤에 위치하도록 설정한다.
3인칭 시점 카메라는 보통 캐릭터 주위에서 시야를 조금 더 넓게 설정한다.
카메라의 활성화/비활성화를 통해 시점을 전환한다.
전환할 때, 카메라가 부드럽게 이동하도록 보간을 사용하면 더 자연스러운 전환을 구현할 수 있다.
스크립트
using UnityEngine;
public class CameraSwitch : MonoBehaviour
{
public Camera firstPersonCamera;
public Camera thirdPersonCamera;
public GameObject playerModel;
private bool isFirstPersonView = true;
private void Start()
{
// 처음에는 1인칭 시점을 활성화, 3인칭 시점은 비활성화
firstPersonCamera.enabled = true;
thirdPersonCamera.enabled = false;
}
private void Update()
{
// 전환 버튼을 누르면 시점을 변경
if (Input.GetKeyDown(KeyCode.Tab))
{
if (isFirstPersonView)
{
// 1인칭 시점을 비활성화하고 3인칭 시점을 활성화
firstPersonCamera.enabled = false;
thirdPersonCamera.enabled = true;
// 플레이어 모델을 플레이어 주위에 배치
playerModel.SetActive(true);
}
else
{
// 3인칭 시점을 비활성화하고 1인칭 시점을 활성화
firstPersonCamera.enabled = true;
thirdPersonCamera.enabled = false;
// 플레이어 모델을 플레이어 머리 뒤에 배치
playerModel.SetActive(false);
}
// 시점 상태 변경
isFirstPersonView = !isFirstPersonView;
}
}
}
위의 스크립트는 두 개의 카메라(firstPersonCamera, thirdPersonCamera)를 사용하여
1인칭과 3인칭 시점을 전환한다.
playerModel 변수는 플레이어 캐릭터 모델을 나타내는 GameObject를 가리킨다.
전환 버튼으로 'Tab' 키를 사용했으며, 버튼을 누를 때마다 시점을 변경하고 플레이어 모델의 표시 여부를 조정한다.