Camera/CameraTrigger.cs
using Clover.Player;
namespace Clover.Camera;
[Category( "Clover/Camera" )]
[Icon( "camera" )]
public class CameraTrigger : Component, Component.ITriggerListener
{
[Property] public CameraNode Camera { get; set; }
void ITriggerListener.OnTriggerEnter( Collider other )
{
var player = other.GetComponent<PlayerCharacter>();
if ( !player.IsValid() || player != PlayerCharacter.Local )
{
return;
}
Camera.Priority = 100;
}
void ITriggerListener.OnTriggerExit( Collider other )
{
var player = other.GetComponent<PlayerCharacter>();
if ( !player.IsValid() || player != PlayerCharacter.Local )
{
return;
}
Camera.Priority = 0;
}
protected override void DrawGizmos()
{
if ( Camera.IsValid() )
{
Gizmo.Transform = global::Transform.Zero;
Gizmo.Draw.Arrow( WorldPosition, Camera.WorldPosition );
}
}
}