rokojori_action_library/Runtime/VFX/LineVFX/SetPositionOnLineVFX.cs

39 lines
800 B
C#
Raw Normal View History

2026-02-26 14:06:27 +00:00
using Godot;
using System.Collections.Generic;
namespace Rokojori;
[Tool]
[GlobalClass ]
public partial class SetPositionOnLineVFX:Action
{
[Export]
public Node3D target;
[Export]
public LineVFX lineVFX;
[Export( PropertyHint.Range, "0,1" ) ]
public float normalizedPosition = 0.5f;
[Export( PropertyHint.Range, "0,1" ) ]
public float normalizedRange = 0.5f;
protected override void _OnTrigger()
{
var random = GodotRandom.Get();
var min = normalizedPosition - normalizedRange;
var max = normalizedPosition + normalizedRange;
var t = random.Range( min, max );
t = MathX.Clamp01( t );
// this.LogInfo( t, normalizedPosition, normalizedRange, min, max );
var p = lineVFX.GetLerpedLinePositionAt( t );
target.GlobalPosition = p;
}
}