init
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user