Tentei implementar uma funcionalidade Zumbis Mortos em meu projeto, onde na tela de Game Over obtia a quantia de zumbis que você matou, então criei um método void no ControlaJogador juntamente de uma variavel, que era somado +1 cada vez que esse metodo era chamado. Ele apenas é chamado quando o zumbi executa o método morrer(), ou seja, sempre que o zumbi morre, soma mais um em minhas kills, o que faz sentido, depois pego essa variavel no controlaInterface para exibir na tela de GameOver. Porém, cada vez que eu mato um Zumbi, por algum motivo, a váriavel soma 7, então acaba ficando um resultado absurdo. Eu até exibi corretamente o numero de zumbis que matei pois apenas dividi o resultado final por 7 mas fiquei curioso o porque deste número ser 7.
ControlaInterface:
public class ControlaInterface : MonoBehaviour
{
private ControlaJogador scriptControlaJogador;
void Start()
{
scriptControlaJogador = GameObject.FindWithTag("Jogador").GetComponent<ControlaJogador>();
}
public void GameOver()
{
Kills.text = "Zumbis Mortos:\r\n" + scriptControlaJogador.ZumbisMortos/7;
}
ControlaJogador
public int ZumbisMortos;
public void Matou()
{
ZumbisMortos+=1;
}
ControlaInimigo
private ControlaJogador scriptControlaJogador;
void Start()
{
scriptControlaJogador = Jogador.GetComponent<ControlaJogador>();
}
public void Morrer()
{
scriptControlaJogador.Matou();
Destroy(gameObject);
ControlaAudio.instancia.PlayOneShot(MorteZumbi);
}