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(); }