Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Não consigo corrigir esse erro que ocorreu com o jogo.

Recentemente, aconteceu uma queda de luz aki no meu bairro e, por algum motivo, meu mapa apenas do jogo foi apagado e não conseguir recuperar, Para contornar isso, baixei a versão final dessa aula e peguei apenas a pasta do mapa oque resolveu, No entanto, continuei com meus próprios scripts tudo na verdade só peguei o mapa, Apenas refiz algumas linhas que havia perdido. Meu Unity estava na versão recente mas támbem não sei explicar o porque mas a versão do meu unity foi para a versão do professor, oque me incomodou um pouco, pois avia me acostumado com a versão mais recente. Mesmo assim, não me importei muito e continuei fazendo ao curso normalmente. No entanto, sempre havia algum erro, e consegui resolver alhuns deles. Porém esses erros específicos estão me acompanhando dês do começo dessa parte do curso. Achei que poderia ser porque o mapa dessa aula é atual eo meus scripts estava desuatalizado. Então, continuei tentando corrigir-los, mas não tive sucesso. Vocês poderiam me ajudar?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Link dos códigos: https://drive.google.com/drive/folders/1wSgH-C2B5HktipD7fnlKZ1So_Q3m2ZNi?usp=sharing

1 resposta
solução!

Bom dia Pedro, tudo bem?

Dei uma olhada no seu código e encontrei alguns pontos pra gente tentar ajustar e ver se resolve o seu problema.

Vamos primeiro corrigir o arquivos IMatavel.cs. Como esse arquivo representa uma interface, só precisamos declarar os métodos, sem escrever a sua implementação. A implementação vai precisar ser fornecida apenas pelas classes que implementarem essa interface. Então o arquivo ficaria assim:

public interface IMatavel 
{
    void TomarDano (int _dano);

    void Morrer ();
}

O próximo passo agora seria implementar essa interface na classe ControlaInimigo.cs com a seguinte alteração:

public class ControlaInimigo : MonoBehaviour, IMatavel

Perceba que a gente colocou o IMatavel ali depois do MonoBehaviour e agora nossa classe herda de MonoBehaviour e implementa a interface IMatavel.

Uma vez que a gente vinculou a classe com a interface, precisamos implementar os métodos que ela declara que são o TomarDano e Morrer. Então ainda na classe ControlaInimigo.cs:

public void TomarDano(int _dano)
{
    status.Vida -= dano;
    if(status.Vida <= 0)
    {
        Morrer();
    }
}

public void Morrer()
{
    Destroy(gameObject);
}

Vou pedir pra você fazer essas alterações e testar se o código passa a funcionar, tá bom? Depois volta aqui pra dizer pra gente se funcionou ou se ainda precisamos corrigir mais alguma coisa.