1
resposta

[Sugestão] Simplificando if else

Uma alternativa que acho interessante é resumir o if/else nessa linha GetComponent().SetBool("isRun", direcao != Vector3.zero);

1 resposta

Olá, Gabriel!

Sua sugestão é realmente interessante e válida. A linha de código GetComponent<Animator>().SetBool("isRun", direcao != Vector3.zero); que você propôs é uma forma mais enxuta de escrever o mesmo que o bloco if/else faz.

Nesse caso, direcao != Vector3.zero vai retornar um valor booleano (true ou false) dependendo se a direção é diferente de zero ou não. Se for diferente, retorna true (o que indica que o personagem está se movendo), se não, retorna false (indicando que o personagem não está se movendo).

Portanto, essa linha de código está fazendo exatamente o mesmo que o bloco if/else, mas de uma maneira mais concisa.

Aqui está um exemplo prático para ilustrar isso:

Vector3 direcao = new Vector3(1, 0, 0); // direcao diferente de zero
bool isRun = direcao != Vector3.zero; // isRun será true
GetComponent<Animator>().SetBool("isRun", isRun); // O personagem estará correndo

direcao = Vector3.zero; // direcao igual a zero
isRun = direcao != Vector3.zero; // isRun será false
GetComponent<Animator>().SetBool("isRun", isRun); // O personagem estará parado

A única coisa que você deve ter em mente é que o nome do parâmetro que você está definindo no Animator deve ser "isRun" em vez de "Movendo", conforme você propôs na sua linha de código.

Espero ter ajudado e bons estudos!