본문 바로가기
개발/Unity

유니티 시네머신 - 현재 활성화된 가상 카메라 가져오기 (How to Get Active Virtual Camera)

by 피로물든딸기 2022. 10. 2.
반응형

Unity 전체 링크

 

여러 Cinemachine의 가상 카메라를 전환할 때,

Show Debug Text체크하면 현재 활성화된 카메라의 이름을 알 수 있다.

 

하지만 실제 활성화된 카메라를 스크립트에서 접근하고 싶을 때도 있다.

CinemachineCore.Instance.GetActiveBrain(0).ActiveVirtualCamera

현재 활성화된 Virtual Camera를 얻을 수 있다.

 

ShowCurrentCamera.cs를 만들고 아무 오브젝트에 추가하자.

OnGUI에 현재 카메라를 표시하도록 하였다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;

public class ShowCurrentCamera : MonoBehaviour
{
    [Range(10, 150)]
    public int fontSize = 30;
    public Color color = new Color(.0f, .0f, .0f, 1.0f);
    public float width, height;

    void OnGUI()
    {
        Rect position = new Rect(width, height, Screen.width, Screen.height);

        float fps = 1.0f / Time.deltaTime;
        float ms = Time.deltaTime * 1000.0f;

        ICinemachineCamera currentCam 
            = CinemachineCore.Instance.GetActiveBrain(0).ActiveVirtualCamera;

        string text = $"Current Camera : {currentCam.Name}";

        GUIStyle style = new GUIStyle();

        style.fontSize = fontSize;
        style.normal.textColor = color;

        GUI.Label(position, text, style);
    }
}

 

핵심코드는 아래와 같다.

CinemachineCore에서 현재 활성화된 카메라를 얻을 수 있다.

    ICinemachineCamera currentCam 
        = CinemachineCore.Instance.GetActiveBrain(0).ActiveVirtualCamera;

 

만약 해당 카메라의 게임 오브젝트를 구하고 싶다면 VirtualCameraGameObject로 접근하면 된다.

    ICinemachineCamera currentCam 
        = CinemachineCore.Instance.GetActiveBrain(0).ActiveVirtualCamera;

    GameObject go = currentCam.VirtualCameraGameObject;

 

게임을 실행시키면 화면에 글자 크기와 위치를 조절해서 원하는 위치에서 디버깅할 수 있다.

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글