Я просто говорю вам о том, что если вы делаете именно браузерную игру, вам действительно стоит задуматься об экономии. Это очень специфичная платформа. Если уж данный скрипт рассматривать, то попробуйте использовать одну кривую с массивом всех точек, а не отрезки. Рассчет позиций тоже выглядит лишним, можете заменить AninationCurve и ивалюэйтить его. Дорогущий getcomponent как и addcomponent отпадут тут тоже сами собой, т.к. не будет этих отрезков. На одном лишь этом вы в сотни раз удешевите расходы.
А если вам хочется придать совсем люто необычный вид вашей кривой, попробуйте использовать геометрический шейдер с передачей в него двух точек и высоты. Вот это будет максимально красиво 🫡
За множество лет в индустрии я много статей навидался, но это просто бесподобно ❤️ в этом коротком скрипте минимум 8 причин, почему он смертелен для вашей браузерной игры, т.к. платформа максимально требовательна к памяти, GC и рендерингу. Но чтобы не быть тут бесполезным хейтером - задумайтесь для начала зачем вам новый геймобжект под каждый отрезок и массив go вообще.
...
Вот вам небольшая вводная про геометрические шейдеры https://coremission.net/gamedev/geometricheskie-shadery-unity/