Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Código errado em C# - Curso de Unity Parte 2

Boa tarde, estou com um problema, logo na primeira aula do curso de Unity Parte 2, segundo as instruções do prefessor devo adicionar a linha:

   Jogador.GetComponent<ControlaJogador>().TomarDano;

á função AtacaJogador() do arquivo ControlaInimigo.cs, porém ele acusa de erro e marca a seguinte frase:

"Somente expressões de atribuição, chamada, incremento, diminuição e novo objeto podem ser usadas como uma intrução"

Abaixo segue a função TomarDano():

 public void TomarDano()
    {
        Vida -= 30;
    }

O código está exatamente igual o vídeo, alguém sabe o que está errado? Será que a versão da Unity tem influencia nisso?

Desde já Muito Obrigado!

2 respostas
solução!

Oi, Evandro!

Faltou só no momento da chamada adicionar parênteses:

Jogador.GetComponent<ControlaJogador>().TomarDano();

Lembra que C# é uma linguagem bastante verbosa então ela não identificou que você queria chamar um método do outro script, achou que queria pegar o valor de uma variável com o nome TomarDano.

Mesmo que o método não receba parâmetros ele tem que ter () no C#.

Espero que solucione o problema, bons estudos :)

Noossaa, não sei como não percebi!! Vou prestar mais atenção daqui em diante hehe! Muito Obrigado professor!!

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