Apos tentar rodar o jogo depois do termino da aula apareceu no inspector esse problema: Parameter 'Movendo 0' does not exist. UnityEngine.Animator:SetFloat (string,single) AnimacaoPersonagem:Movimentar (single) (at Assets/Scripts/AnimacaoPersonagem.cs:21) ControlaInimigo:FixedUpdate () (at Assets/Scripts/ControlaInimigo.cs:33)
public class AnimacaoPersonagem : MonoBehaviour { private Animator meuAnimator;
void Awake()
{
meuAnimator = GetComponent<Animator>();
}
public void Atacar (bool estado)
{
meuAnimator.SetBool("Atacando", estado);
}
public void Movimentar (float valorDeMovimento)
{
meuAnimator.SetFloat("Movendo 0", valorDeMovimento);
}
}
public class ControlaInimigo : MonoBehaviour, IMatavel { public GameObject Jogador; private MovimentoPersonagem movimentoInimigo; private AnimacaoPersonagem animacaoInimigo; private Status statusInimigo; public AudioClip SomDeMorte; private Vector3 posicaoAleatoria; private Vector3 direcao; private float contadorVagar; private float tempoEntrePosicoesAleatorias = 4;
void Start()
{
Jogador = GameObject.FindWithTag("Jogador");
animacaoInimigo = GetComponent<AnimacaoPersonagem>();
movimentoInimigo = GetComponent<MovimentoPersonagem>();
AleatorizarZumbi();
statusInimigo = GetComponent<Status>();
}
void FixedUpdate()
{
float distancia = Vector3.Distance(transform.position, Jogador.transform.position);
direcao = Jogador.transform.position - transform.position;
animacaoInimigo.Movimentar(direcao.magnitude);
movimentoInimigo.Rotacionar(direcao);
if (distancia > 15)
{
Vagar();
}
else if (distancia > 2.5)
{
movimentoInimigo.Movimentar(direcao, statusInimigo.Velocidade);
animacaoInimigo.Atacar(false);
}
else
{
animacaoInimigo.Atacar(true);
}
}
void Vagar()
{
contadorVagar -= Time.deltaTime;
if (contadorVagar <= 0)
{
posicaoAleatoria = AleatorizarPosicao();
contadorVagar += tempoEntrePosicoesAleatorias;
}
bool ficouPertoOSuficiente = Vector3.Distance(transform.position, posicaoAleatoria) <= 0.05;
if (ficouPertoOSuficiente == false)
{
direcao = posicaoAleatoria - transform.position;
movimentoInimigo.Movimentar(direcao, statusInimigo.Velocidade);
}
}
Vector3 AleatorizarPosicao ()
{
Vector3 posicao = Random.insideUnitSphere * 10;
posicao += transform.position;
posicao.y = transform.position.y;
return posicao;
}
void AtacaJogador ()
{
int dano = Random.Range(20, 30);
Jogador.GetComponent<ControlaJogador>().TomarDano(dano);
}
void AleatorizarZumbi ()
{
int geraTipoZumbi = Random.Range(1, 28);
transform.GetChild(geraTipoZumbi).gameObject.SetActive(true);
}
public void TomarDano(int dano)
{
statusInimigo.Vida -= dano;
if (statusInimigo.Vida <= 0)
{
Morrer();
}
}
public void Morrer()
{
Destroy(gameObject);
ControlaAudio.instancia.PlayOneShot(SomDeMorte);
}
}