게임 씬에서 화면에 보여지는 부분은 Camera 오브젝트를 이용해 볼 수 있다. 꼭 한 개 이상의 Camera가 존재해야한다.
이 글에서는 이동하는 Player의 오브젝트를 따라서 카메라도 이동하는 기능을 구현해 볼 것이다.
원리는 간단하다. 화면에 보여질 오브젝트를 원하는 위치에 카메라를 놓은 상태로 두 오브젝트 간의 Vector3 값의 차이를 이용해 Update문으로 위치를 바꿔준다.
CameraController.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
private Camera cam;
public GameObject _player = null;
public Vector3 _delta = new Vector3(0.0f, 6.0f, -6.0f);
// 플레이어와 카메라 사이의 거리를 저장하여 시점을 설정한다.
void Start()
{
cam = Camera.main; // main camera를 가져온다.
_player = GameObject.Find("TestCube"); // TestCube 객체를 Player로 설정한다.
}
// Update is called once per frame
void LateUpdate() // 가장 마지막에 실행되는 함수로, 플레이어의 위치가 변경된 후
{ // 실행되기 때문에 자연스러운 화면 연출이 가능하다.
cam.transform.position = _player.transform.position + _delta;
// 업데이트가 될 때마다 camera의 위치를 플레이어위치 + 설정값으로 변경한다
}
}
main camera에 해당 코드를 붙여주면 된다.
'UNITY' 카테고리의 다른 글
UNITY - UI 자동화(1) - 인벤토리 구현 (0) | 2024.01.11 |
---|---|
UNITY - UIManager (2) | 2024.01.11 |
UNITY - Camera - 3인칭 시점(2) (4) | 2024.01.08 |
UNITY - InputManager (1) | 2024.01.08 |
UNITY - Manager (1) | 2024.01.03 |