GamePlay/JumperDistanceRuler.cs
using Sandbox;
public sealed class JumperDistanceRuler : Component
{
[Property] public GameObject StartObject { get; set; }
[Property] public GameObject EndObject { get; set; }
[Sync] public RealTimeSince SessionTimer { get; set; } = 0f;
[Sync] public float Distance { get; set; }
protected override void OnEnabled()
{
base.OnEnabled();
if ( StartObject is null || EndObject is null )
return;
var start = StartObject.Transform.LocalPosition.z;
var end = EndObject.Transform.LocalPosition.z;
var distanceBetween = MathF.Abs( start - end );
Distance = distanceBetween;
}
protected override void DrawGizmos()
{
base.DrawGizmos();
Gizmo.Draw.Color = Color.Yellow;
Gizmo.Draw.LineThickness = 12;
Gizmo.Draw.Line( StartObject.Transform.LocalPosition, EndObject.Transform.LocalPosition );
Gizmo.Draw.Color = Color.Blue;
Gizmo.Draw.Text( $"{Distance}", new Transform( StartObject.Transform.LocalPosition + (EndObject.Transform.LocalPosition - StartObject.Transform.LocalPosition) / 2 ),"poppins",48 );
}
}