Oi, João, tudo bem?
Esse é um assunto um pouco polêmico hehe.
Não temos nenhuma restrição de usar while
na Unity o problema é a chamada deles nos Game Loops, usando um while
no Start por exemplo na maioria das vezes não vai te causar nenhum problema. Diferente do while
no Update por exemplo que trava a execução até o while
terminar e isso está acontecendo a todo frame, então o prejuízo é grande. Por isso é uma boa usarmos as coroutines pra evitar esse problema, mas abusar de coroutines também não é uma boa prática.
O ideal é ter um equilíbrio entre o que você precisa que aconteça e não usar coroutines sempre abusando de fake randoms ou outras práticas para melhorar a performance. Num curso a frente desse por exemplo quando formos instanciar zumbis vamos procurar uma área não ocupada. Mas vamos fazer isso numa área pequena o que torna o processo bastante rápido.
Tente ter alguma forma de controlar o final da execução pra evitar o uso de while
o tempo todo.
Qualquer dúvida estamos por aqui :)