private void GenerateLineRendererSegments()
    {
        if (startPoints.Length != endPoints.Length)
        {
            return;
        }
        foreach (var lr in GetComponentsInChildren <LineRenderer>())
        {
            lr.gameObject.Destroy();
        }
        _lineRenderer.Clear();

        for (var index = 0; index < startPoints.Length; index++)
        {
            var       lr         = UnityExtensions.Instantiate(lineRendererPrefab, transform.position, Quaternion.identity, transform).GetComponent <LineRenderer>();
            Vector3[] points     = new Vector3[sections];
            var       startPoint = startPoints[index].position;
            var       endPoint   = endPoints[index].position;
            for (int i = 0; i < sections; i++)
            {
                points[i] = Vector3.Lerp(startPoint, endPoint, (float)i / sections);
            }

            lr.positionCount = sections;
            lr.SetPositions(points);
            _lineRenderer.Add(lr);
        }
        UpdateSimulation();
    }