1
resposta

Jogo Mobile - Otimização

Em uma das aulas de mobile do curso de jogos Unity, o professor estava explicando sobre otimização e como era importante faze-lo para mobile, uma das dicas era criar a reserva de itens e evitar usar o New e Instanciar.

Estou fazendo um jogo de plataforma para mobile, eu criei o sistema de tiro junto com a reserva de balas, coloquei um OnColisiorEnter2D para a bala voltar pra reserva ao colidir com algo, mas existe a questão da bala não colidir, nessa situação eu criei uma Corotina com um tempo X pra bala voltar pra reserva se não colidir.

Minha duvida é se a parte do código da Corotina:

yield return new WaitForSeconds(tempoX);
retornarBalaParaReserva();

se esse new da função WaitForSeconds pode prejudicar a otimização do meu jogo, lembrando que é focado para Mobile, ja que citado pelo professor, é essencial evitar usar esses tipo de função, e toda vez que o jogador atira ela é chamada.

Isso pode prejudicar a otimização? existe uma maneira melhor de fazer isso?

Obrigado.

1 resposta

Oi Jose, tudo bom?

Realmente a otimização é muito importante. Nesse caso do New WaitForSeconds ele não é tão grave quanto instanciar um novo GameObject inteiro, mas ele tbm não é a melhor solução.

O que vc pode fazer é te atributo da classe que guarde a referencia para esse valor e assim vc só chama ele dentro da corrotina e não instancia um novo objeto toda vez.

private WaitForSeconds tempoDeEspera

private Awake(){
    tempoDeEspera = new WaitForSeconds(tempoX)
}
IEnumerator destuirDepoisDeUmTempo(){
    yield return tempoDeEspera;
    retornarBalaParaReserva();
}