Utils/HeightTool.cs
public sealed class HeightTool : Component
{
[Property] public LineRenderer LineRenderer { get; set; }
[Property] SpriteRenderer SpriteRenderer { get; set; }
public Vector3 StartPos { get; set; }
public Vector3 EndPos { get; set; }
protected override void OnStart()
{
if ( !LineRenderer.IsValid() ) return;
LineRenderer.VectorPoints.Add( StartPos );
LineRenderer.VectorPoints.Add( EndPos );
}
public void UpdateStartPos( Vector3 newPos )
{
StartPos = newPos;
if ( !LineRenderer.IsValid() ) return;
LineRenderer.VectorPoints[0] = StartPos;
}
public void UpdateEndPos( Vector3 newPos )
{
EndPos = newPos;
if ( !LineRenderer.IsValid() ) return;
LineRenderer.VectorPoints[1] = EndPos;
}
public void UpdateSprite( float height )
{
//Keep the sprite position inbetween the start and end
var midPoint = (StartPos + EndPos) / 2;
SpriteRenderer.WorldPosition = midPoint;
DebugOverlay.Text( midPoint, $"Height: {height}", overlay: true );
}
}