상세 컨텐츠

본문 제목

유니티 카메라 화면 전환(시네머신)

카테고리 없음

by MJ_119 2024. 8. 5. 20:25

본문

모바일 환경에서는 메모리와 성능 관리가 중요하기 때문에, 가상 카메라의 우선순위를 변경하는 방법이 더 적합합니다.

 

@ 마우스 오른쪽 버튼을 누르고 있을때 카메라 이동하는 방법 ( 계속 누르고 있어야 함 )

    public CinemachineVirtualCamera virtualCamera; // 줌인 할 카메라
    
    void Update()
    {
        MouseClick();
    }

    private void MouseClick()
    {
        if (Input.GetMouseButton(1))
        {
            virtualCamera.Priority = 16;
        }
        else
        {
            virtualCamera.Priority = 14;
        }
    }

 

위의 방법은 가상 카메라 1과 가상카메라 2가 있을때 카메라1의 우선순위는 15로 해놓은 상태로 가상카메라 2의 우선순위를 변경하는 방법. 

 

@ 가상 카메라 오브젝트를 활성화 / 비활성화 하는 방법도 있다.

using UnityEngine;
using Cinemachine;

public class CameraToggle : MonoBehaviour
{
    public CinemachineVirtualCamera virtualCamera1; // 첫 번째 가상 카메라
    public CinemachineVirtualCamera virtualCamera2; // 두 번째 가상 카메라

    void Update()
    {
        MouseClick();
    }

    private void MouseClick()
    {
        if (Input.GetMouseButton(1)) // 오른쪽 마우스 버튼이 눌렸을 때
        {
            virtualCamera1.gameObject.SetActive(false); // 첫 번째 가상 카메라 비활성화
            virtualCamera2.gameObject.SetActive(true);  // 두 번째 가상 카메라 활성화
            Debug.Log("Right mouse button is being held down");
        }
        else
        {
            virtualCamera1.gameObject.SetActive(true);  // 첫 번째 가상 카메라 활성화
            virtualCamera2.gameObject.SetActive(false); // 두 번째 가상 카메라 비활성화
            Debug.Log("Right mouse button is not being held down");
        }
    }
}

 

2개를 껏다 켰다 해도 되고, 1개를 고정적으로 켜놓고 우선순위 높은 카메라 1개만 활성화, 비활성화 해도 된다.