Unity Cinemachine: how can I store the current active virtual camera into a variable?

4.2k Views Asked by At

Basically I'd like to get the current live virtual camera and store it in a CinemachineVirtualCamera variable.

 public CinemachineBrain cine;
 public CinemachineVirtualCamera VirtualCamera;

 void Start()
 {
     VirtualCamera = cine.ActiveVirtualCamera;
 }

But it gives me an error that says: "Can't convert type Cinemachine.ICinemachineCamera to Cinemachine.CinemachineVirtualCamera"

I've already tried casting but it doesn't work, the variable remains null.

I've also tried:

 VirtualCamera = cine.ActiveVirtualCamera.VirtualCameraGameObject.GetComponent<CinemachineVirtualCamera>();

Can someone help me please?

1

There are 1 best solutions below

1
On

You need to wait a frame before CinemachineBrain gets an active camera.

IEnumerator Start()
{
    yield return null;
    VirtualCamera = cine.ActiveVirtualCamera as CinemachineVirtualCamera;
}