Files
2026-07-09 21:33:33 +02:00

24 lines
754 B
C#

using Sirenix.OdinInspector;
using UnityEngine;
namespace VOID.Generic.Trajectory
{
[TypeRegistryItem("Parabolic")]
public sealed class ParabolicTrajectory : AbstractTrajectory
{
[SerializeField, Required, MinValue(0)]
public float height;
protected override void OnInit()
{
if (height > 0f) trajectoryDistance = Mathf.PI*Mathf.Sqrt(Mathf.Pow(lineDistance/2,2)*Mathf.Pow(height,2)/2);
}
public override Vector3 GetPositionByProgress(float progress)
{
var result = Vector3.Lerp(startPosition, endPosition, Mathf.Clamp01(progress));
result.y += Mathf.Sin(progress * Mathf.PI) * height;
return result;
}
}
}