public virtual void SetTarget() { RailNode nextPosition = AttachedRail.GetTargetRailNode(RailIndex); if (nextPosition.Valid) { target = nextPosition; var dist = Vector2.Distance(transform.position, target.Position); var angle = Vector2.SignedAngle(transform.position - target.Position, target.Direction) * Mathf.Deg2Rad; distanceToTarget = dist * -Mathf.Cos(angle); distanceToCenter = dist * Mathf.Sin(angle); } else { OverranRail(); } }