public void AddPoint(float point) { dataPoints.Enqueue(point); if (dataPoints.Count > visiblePointsCount) { dataPoints.Dequeue(); } Queue <float> .Enumerator pointsEnum = dataPoints.GetEnumerator(); if (lineRenderer != null) { for (int i = visiblePointsCount - 1; i >= 0; i--) { pointsEnum.MoveNext(); Vector3 newPoint = new Vector3(1f - i * pointOffset, pointsEnum.Current - 0.5f, 0); lineRenderer.SetPosition(i, newPoint); } } else if (uiLineRenderer != null) { for (int i = visiblePointsCount - 1; i >= 0; i--) { pointsEnum.MoveNext(); Vector3 newPoint = new Vector3((1f - i * pointOffset) * uiWidth, pointsEnum.Current * uiHeight); uiLineRenderer.Points[i] = newPoint; } uiLineRenderer.Apply(); } }