1
resposta

Utilização de parâmetros

Olá Rodrigo, estou com uma grande dificuldade de entender algo que ao meu ver parece ser bem básico, que é a respeito de parâmetros. Não consigo entender a real utilização deles. Vou dar como exemplo uma parte do código de um curso seu:

private void Instanciar()
{
    var inimigo = GameObject.Instantiate(this.prefabInimigo);
    this.DefinirPosicaoInimigo(inimigo);
    inimigo.GetComponent<Seguir>().SetAlvo(this.alvo);
    inimigo.GetComponent<Pontuavel>().SetPontuacao(pontuacao);
}

private void DefinirPosicaoInimigo(GameObject inimigo)
{
    var posicaoAleatoria = Random.insideUnitCircle * this.raio;
    var posicaoInimigo = (Vector2)this.transform.position + posicaoAleatoria;
    inimigo.transform.position = posicaoInimigo;
}

Você precisou colocar dentro do método de definir posição inimigo um parametro de gameobject inimigo e utilizou ele em cima no metodo instanciar. Mas qual a real utilização disso? Se você tivesse criado o método DefinirPosicaoINimigo() sem parametro e dentro do instanciar() usasse this.DefinirPosicaoINimigo() também sem parametro, não iria funcionar?

Estou com dificuldade de entender quando necessitamos usar isso.

1 resposta

Oi Lucas, tudo bom?

Da maneira que vc pensou o código tbm iria funcionar. Nesse ponto a utilização de parâmetros é algo que depende um pouco mais do seu estilo de programação, Afinal esse método é privado então só a própria classe pode utilizar ele.

Eu prefiro deixar ele recebendo parâmetros ao invés de acessar diretamente os atributos da classe pq consigo ver facilmente quais as dependências desse método.

Nesse caso é uma questão de preferência mas se estivéssemos falando de um método público que outras classes vão consumir ai os parâmetros servem para que essa função tenha acesso a informações de outros objetos e nesse caso não teria como deixar essas dependências como atributos dessa classe

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software