07
20

어떤 게임에 구현되어 있을까?

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' 키를 사용했으며, 버튼을 누를 때마다 시점을 변경하고 플레이어 모델의 표시 여부를 조정한다.
COMMENT