40 lines
725 B
C#
40 lines
725 B
C#
|
|
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 );
|
|
|
|
}
|
|
|
|
|
|
}
|
|
} |