유니티:주인공 시점
- 유니티:개요
- 유니티:기본 조작
- 유니티:카메라
- 유니티:오브젝트
- 유니티:코딩기초
- 유니티:UI
- 유니티:게임 내 화면
- 유니티:플레이어
- 유니티:맵
- 유니티:씬
- 유니티:몬스터
- 유니티:아이템
- 유니티:음향
- 유니티:빌드
- 유니티:VR
- 유니티:팁
개요
캐릭터를 움직여도 시점은 변하지 않는다. 캐릭터의 위치, 시선에 따라 카메라의 방향을 바꾸어야 할 때가 있는데, 이를 위한 지식.
캐릭터 조작과 동일하게 스크립트로 카메라를 제어한다. 이 스크립트를 메인 카메라에 적용하면 된다.
스크립트
다양한 방식의 스크립트를 여기에 안내한다. 참고해 작성해보자.(좋은 방식이 있다면 추가하거나 수정해보자.)
캐릭터를 따라가기만 할 경우
캐릭터 시선과 상관없이, 따라가기만 하는 경우.
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
// 따라갈 타겟을 정한다. 스크립트 적용 후, 인스펙터 창에 따라갈 대상을 끌어다 두자.
[SerializeField]
Transform target;
// 카메라가 따라갈 속도.
[SerializeField]
float speed = 5f;
// 따라갈 대상과 카메라의 위치관계를 저장할 변수.(이것이 유지되도록 한다.)
Vector3 offset;
void Start()
{
offset = transform.position - target.position;
}
void FixedUpdate()
{
// 움직인 대상으로부터 카메라 위치를 지정한다.
Vector3 targetCamPos = target.position + offset;
// 시작점과 끝점을 지정하여 일정한 속도로 카메라를 움직이게 한다.
transform.position = Vector3.Lerp(transform.position, targetCamPos, speed * Time.deltaTime);
}
}