2
respostas

Zumbi com fisica

Tudo funcionou perfeitamente, até gostei que no meu caso o zumbi não atrvessou o chão, ele cai e depois de um segundo ele some, porem ele ainda tem fisica (posso até "joga-lo se encostar nele) e se eu atirar nele de novo, toca a animação novamente antes dele desaparecer, como eu posso corrigir isso?

MovimentoPersonagem

public void Morrer()
 {
meuRigidbody.constraints = RigidbodyConstraints.None;
meuRigidbody.velocity = Vector3.zero;
GetComponent<Collider>().enabled = false;
 }
 

ControlaZumbi

public void Morrer()
{
    Destroy(gameObject, 1);
    animacaoZumbi.Morrer();
    movimentaZumbi.Morrer();
    this.enabled = false;
    ControlaAudio.instancia.PlayOneShot(SomDeMorte);
    VerificarGeracaoKitMedico(porcentagemGerarKitMedico);
    scriptControlaInterface.AtualizarQuantidadeDeZumbisMortos();
    meuGerador.DiminuirQuantidadeDeZumbisVivos();
}
2 respostas

Olá, Vitor! Entendo que você está tendo problemas com a física do zumbi após ele morrer e com a animação sendo reproduzida novamente se você atirar nele. Vamos tentar resolver isso juntos.

Primeiramente, sobre a física do zumbi, você pode adicionar uma verificação no seu método Morrer() para garantir que ele só seja executado uma vez. Isso pode ser feito com uma variável booleana, por exemplo:

private bool jaMorreu = false;

public void Morrer()
{
    if (jaMorreu)
        return;

    jaMorreu = true;
    
    // Resto do seu código...
}

Desta forma, após a primeira morte, as próximas chamadas ao método Morrer() serão ignoradas e o zumbi não será jogado novamente.

Quanto ao problema da animação ser reproduzida novamente, você pode aplicar uma lógica similar. No seu script ControlaZumbi, você pode adicionar uma verificação para garantir que a animação de morte só seja executada uma vez. Isso impedirá que a animação seja reproduzida novamente se você atirar no zumbi após ele já estar morto.

Espero que isso resolva o seu problema! Lembre-se de testar essas alterações e fazer qualquer ajuste necessário para que elas funcionem no seu projeto específico. Espero ter ajudado e bons estudos!

Então, como eu comentei na aula de Inertface na parte do Texto, eu tinha colocado dois colisores nos zumbis, o que acabava fazendo com que eles valessem por dois, agora que eu tirei o colisor extra, esta funcionando normal como no video. Porem eu ainda prefiro que o inimigo não seja sugado pelo chão, mas sim que ele cai normal e depois de um depois ele some e ainda sem ter fisica e animação acontecendo se eu atirar nele de novo, como eu posso fazer isso? Eu sei que é pedir demais, porem gostava mais do jeito anterior.

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