3rd Person Camera - Chaper 02. Follow Camera (3인칭 카메라 챕터2. 플레이어 추적 카메라)
https://dnddkqja21.tistory.com/42
1st, 3rd Person Camera - Chapter 01. Game Camera View. (1인칭 카메라, 3인칭 카메라 - 첫 번째 챕터. 게임 카메
https://dnddkqja21.tistory.com/41 Let's move my character Chapter2. More accurate calculations! 유니티 일정한 속력으로 이동하기! https://dnddkqja21.tistory.com/40 Let's move my character in the 3D world! 움직이는 캐릭터 구현 https://
dnddkqja21.tistory.com
지난 시간에는 1인칭 카메라와 3인칭 카메라에 대해 간단하게 알아보았습니다.
이번에는 플레이어를 따라가는 카메라를 만들어보겠습니다.
플레이어가 키보드 입력에 따라 움직이는 것까지는 구현하였습니다.
여기서 플레이어가 화면 밖으로 나간다면 어떻게 될까요???
키보드 방향키를 꾹 눌러 화면 밖으로 플레이어가 나가도록 해봅시다.
플레이어가 화면 밖으로 사라진다면 우리는 플레이어가 어디에 있는지 확인할 수 없습니다.
게임에서 이런 상황이 발생하면 안 되겠죠?
보통 카메라는 플레이어를 비추어 현재 게임의 상황을 유저가 알 수 있도록 하는 역할을 합니다.
그러므로 카메라는 항상 플레이어를 따라다닌다고 생각하시면 편할 겁니다.
카메라가 플레이어를 따라가도록 하는 방법은 어떻게 될까요??
[1. 카메라를 플레이어의 자식 오브젝트로 둔다]
메인 카메라를 드래그 앤 드롭하여 플레이어 오브젝트의 자식으로 배치합니다.
다음 에디터를 실행한 뒤 플레이어를 움직여봅시다.
이렇게 영상처럼 카메라가 항상 플레이어를 따라다니는 것을 보실 수 있습니다.
카메라가 플레이어를 따라다니는데는 아무런 문제가 없지만 문제는 카메라가 회전할 때 발생합니다.
카메라 오브젝트를 선택한 후 E 키를 눌러 회전 모드로 변경한 후 y축을 기준으로 카메라를 회전시켜 보세요.
카메라를 회전시키니 게임 탭의 플레이어 오브젝트가 한쪽으로 쏠리게 되었습니다.
회전을 더 준다면 플레이어 오브젝트가 카메라의 시야에서 완전히 벗어날 수도 있습니다.
우리가 원하는 것은 이러한 모습이 아니라 카메라가 회전하여도 플레이어는 항상 화면의 중앙에 위치해야 합니다.
이를 해결하기 위해 카메라의 구조를 변경해봅시다.
[2. 카메라를 제어하는 Camera Arm 오브젝트 생성]
빈 오브젝트를 생성 후 이름을 Camera Arm으로 명명합니다.
이후에 카메라를 Camera Arm의 자식 오브젝트로 배치합니다.
저는 Camera Arm 의 position y 의 값을 큐브의 피벗에 따라 Ground를 밟고 설 수 있도록 0.5로 지정해주었습니다.
Main Camera의 position 은 z 값만 -3으로 해주었어요.
저를 따라 position을 정하셨다면 위 사진과 같이 보이실 겁니다.
추후에 여러분의 프로젝트의 성향에 맞도록 배치하셔도 됩니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowPlayer : MonoBehaviour
{
[SerializeField]
Transform player;
void Update()
{
transform.position = player.position;
}
}
FollowPlayer 스크립트를 생성 후 위와 같이 코드 작성을 해준 뒤 에디터로 돌아옵니다.
스크립트를 Camera Arm 오브젝트에 드래그 앤 드롭해준 뒤에 플레이어 오브젝트를 할당해줍니다.
스크립트의 Update 함수 내용은 Camera Arm 오브젝트의 transform.position을 player.transform.position과 매 프레임 일치시켜주는 코드입니다.
에디터를 실행하여 확인해봅시다!
첫 번째 방식과 마찬가지로 플레이어가 항상 화면의 중앙에 위치하면서 카메라는 플레이어를 잘 따라다니네요.
여기서 한 가지 더 확인할 게 있습니다. 우리는 굳이 카메라와 카메라 암을 나누었기 때문에 그 이유를 보여드릴게요.
Camera Arm 오브젝트를 선택한 뒤 E키를 눌러 회전 모드로 변경 후 Y축으로 회전시켜보세요.
이전과는 다른 결과가 나타나는데요. 플레이어는 항상 화면의 중앙에 위치하면서 플레이어를 중심으로 Camera Arm이
회전하면서 우리가 원하는 회전이 표현되는 것을 보실 수 있습니다.
오늘은 플레이어를 따라가는 카메라 구성을 해보았습니다.
다음 시간에는 마지막에 보았던 카메라 암 회전을 이용하여 카메라를 회전시키는 기능 또한 구현해보겠습니다.
오늘도 수고하셨습니다 :D