Code/k/VirtualCamera.cs
namespace Sandbox.k;
[Title( nameof(VirtualCamera))]
[Category( "k.Cameras" )]
[Icon("videocam")]
[EditorHandle("materials/gizmo/camera.png")]
public class VirtualCamera : Component
{
[RequireComponent] private CameraComponent _camera { get; set; }
public CameraComponent Camera => _camera;
protected override void OnDisabled()
{
base.OnDisabled();
DestroyExistingTransitionCameras();
CreateTransitionCamera();
}
private void DestroyExistingTransitionCameras()
{
var transitionCameras = Scene.GetAllComponents<TransitionCamera>();
foreach ( var transitionCamera in transitionCameras )
{
transitionCamera.DestroyGameObject();
}
}
[Button]
private void CreateTransitionCamera()
{
var instance = new GameObject();
var transitionCamera = instance.AddComponent<TransitionCamera>();
transitionCamera.CopyCamera( _camera );
}
}