이번엔 카메라를 제어할 것이다.
기본적으로, 카메라는 특정한 타겟을 따라가거나, 특정 위치에 고정되게끔 할 것이다.
CameraManager
여러 개의 카메라를 관리하는 스크립트를 만든다.
using Unity.Cinemachine;
using UnityEngine;
public class CameraManager : Singleton<CameraManager>
{
[SerializeField] CinemachineCamera follow_Cam; // 플레이어를 따라다니는 카메라
[SerializeField] CinemachineCamera event_Cam; // 이벤트 발동시 특정 위치에 존재하는 카메라
private CinemachineCamera currentCam; // 현재 사용중인 카메라
private void ChangeCamera(CinemachineCamera cam)
{
if(currentCam != null)
{
currentCam.Priority = 0;
}
cam.Priority = 10;
currentCam = cam;
}
// 타켓을 따라다니는 카메라
public void FollowCam(GameObject target)
{
ChangeCamera(follow_Cam);
follow_Cam.Follow = target.transform;
follow_Cam.LookAt = target.transform;
}
// 특정 위치를 비추는 카메라
public void EventCam(Vector2 targetPos)
{
ChangeCamera(event_Cam);
event_Cam.transform.position = new Vector3(targetPos.x, targetPos.y, -10f);
}
}
현재 사용하는 카메라 형식은 총 2개로 특정 오브젝트를 따라가는 follow_Cam과 특정 위치를 촬영하는 event_Cam이 존재한다.
ChangeCamera로 전환할 카메라의 Priority값을 높여주어 전환을 한다.
FollowCam에서 따라갈 대상을 받아와 카메라가 그 오브젝트를 따라가게끔 하고, EventCam에서는 특정 위치를 받아와 해당 위치를 비추는 기능을 구현했다.
unity Editor 설정
가장 먼저 Cinemachine Brain이 될 mainCamera에 brain을 달아주고,
followCam과 eventCam을 만들어서 Cinemachine을 넣어주고 사용한다.

블렌딩 방식으로는 지금은 이렇게 사용하지만 원하는 연출이 있을때는 카메라를 전환하기 전에 블렌드 방식을 바꾸는 식으로 사용할 것 같다.
완성본

'GameDev > Step of Love' 카테고리의 다른 글
| Step of Love - 색 변경 (0) | 2026.05.31 |
|---|---|
| Step of Love 미니게임 (0) | 2026.05.31 |
| Step of Love 달리기 시스템 (0) | 2026.05.27 |
| Step of Love 이벤트 상호작용 (0) | 2026.05.26 |
| Step of Love - NavMesh (1) | 2026.05.25 |