C#(Unity) — Чем можно заменить бесконечный цикл for?
Корутины и событийная модель.
Скорее всего виноват не цикл. Если вы выполняете (отрисовку кадров, логику)в одном потоке, то конечно будут провисания. 
Как вариант: разбить на разные threads. Либо использовать др движок, например: monogame, unity...