winter-tales/Character/DistanceToCapsuleSize.cs

40 lines
725 B
C#
Raw Permalink Normal View History

2025-12-21 18:58:19 +00:00
using Godot;
namespace Rokojori
{
[Tool][GlobalClass ]
public partial class DistanceToCapsuleSize: Action
{
[Export]
public Node3D sourceA;
[Export]
public Node3D sourceB;
[Export]
public CapsuleMesh target;
[Export]
public float endRadius = 1;
[Export]
public float maxRadius = 1;
protected override void _OnTrigger()
{
if ( sourceA == null || sourceB == null || target == null )
{
return;
}
var direction = sourceB.GlobalPosition - sourceA.GlobalPosition;
var distance = direction.Length() + endRadius * 2;
target.Height =distance;
target.Radius = Mathf.Min( distance / 2f, maxRadius );
}
}
}