Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

return não entendi

oque acontece no código, pelo que eu entendi, é que AleatorizarPosicao manda os seus valores pro posicaoAleatoria quando usa o return, mas se é isso então porque simplesmente não coloca sozinho o AleatorizarPosicao no void Vagar? não daria o mesmo resultado? sem o return claro

 void Vagar ()
{
    posicaoAleatoria = AleatorizarPosicao();
}

 Vector3 AleatorizarPosicao ()
    {
        Vector3 posicao = Random.insideUnitSphere * 10;
        posicao += transform.position;
        posicao.y = transform.position.y;

        return posicao;
    }
2 respostas
solução!

Oi, Victor, tudo bem?

Pode sim! Mas tem uma máxima da programação que é cada métodos/classes serem simples e voltados pra um objetivo.

Então se o intuito do método Vagar é mover o zumbi apesar de fazer sentido calcular o valor dentro desse método é interessante extrair esse pequeno comportamento para outro método e deixar o Vagar para lidar somente com as movimentações do zumbi, não importando para onde. Assim o método que define o local é também pequeno e fácil de debuggar em caso de bugs serem encontrados.

Isso não é uma regra escrita na pedra é mais uma boa prática de programação e ela vai se consolidando quanto mais você programar. Você vai perceber que é interessante ter métodos mais simples e menores pra facilitar a abstração e reutilização de comportamentos.

Fechando o tópico :)