rokojori_action_library/Runtime/Cameras/VirtualCamera.cs

46 lines
901 B
C#

using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using System;
using Godot;
namespace Rokojori
{
[Tool]
[GlobalClass, Icon("res://addons/rokojori_action_library/Icons/VirtualCamera3D.svg") ]
public abstract partial class VirtualCamera:Node3D
{
[Export]
public bool inputEnabled = true;
[ExportToolButton( "Copy Camera Pose")]
public Callable copyCameraPoseButton => Callable.From(
()=>
{
#if TOOLS
var camera = EditorInterface.Singleton.GetEditorViewport3D().GetCamera3D();
Pose.CopyTo( camera, this );
#endif
}
);
public virtual Vector3 GetCameraPosition()
{
return GlobalPosition;
}
public virtual Quaternion GetCameraRotation()
{
return GlobalBasis.GetRotationQuaternion();
}
public abstract float GetCameraFOV();
}
}