Uma alternativa que acho interessante é resumir o if/else nessa linha GetComponent().SetBool("isRun", direcao != Vector3.zero);
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Uma alternativa que acho interessante é resumir o if/else nessa linha GetComponent().SetBool("isRun", direcao != Vector3.zero);
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!