GameDev/Step of Love

Step of Love 카메라 제어

SMNNMN 2026. 5. 28. 02:15

이번엔 카메라를 제어할 것이다.

기본적으로, 카메라는 특정한 타겟을 따라가거나, 특정 위치에 고정되게끔 할 것이다.

 

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