示例#1
0
        private void DrawCurve(Trajectory trajectory)
        {
            if (lineRenderer == null)
            {
                return;
            }

            // Просчитываем ключевые точки и рисуем по ним кривую
            int   pointsCounter = 0;
            float handledXDist  = 0;
            var   step          = trajectory.AimRelativePosition.x / MAX_KEY_POINTS_IN_CURVE;
            var   keyPoints     = new List <Vector3>();

            while (pointsCounter < MAX_KEY_POINTS_IN_CURVE)
            {
                keyPoints.Add(trajectory.CalculatePoint(handledXDist));
                pointsCounter++;
                handledXDist += step;
            }
            // Добавляем последнюю точку
            keyPoints.Add(trajectory.CalculatePoint(trajectory.AimRelativePosition.x));

            // Рисуем линию
            lineRenderer.positionCount = pointsCounter + 1;
            lineRenderer.SetPositions(keyPoints.ToArray());
        }