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.