반응형
여러 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:
Unity Pro:
Unity 프리미엄 학습:
반응형
'개발 > Unity' 카테고리의 다른 글
유니티 - StreamWriter로 로그를 텍스트 파일로 출력하기 (Output Log with StreamWriter) (0) | 2022.10.02 |
---|---|
유니티 시네머신 - FreeLook + TargetGroup으로 전체 지도 촬영하기 (0) | 2022.10.02 |
(16) Mixing Camera로 화면 혼합하기 - 유니티 시네머신 튜토리얼 (0) | 2022.09.26 |
(15) Target Group으로 지정한 타겟을 모두 촬영하기 - 유니티 시네머신 튜토리얼 (0) | 2022.09.25 |
(14) Dolly Cart로 Track을 따라 촬영하기 - 유니티 시네머신 튜토리얼 (0) | 2022.09.25 |
댓글