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

quando eu vou testar se esta contando os zumbis aparece isso

Assets\scripts\BarraVida.cs(43,60): error CS1503: Argument 1: cannot convert from 'string' to 'System.IFormatProvider' Assets\scripts\BarraVida.cs(43,69): error CS1503: Argument 2: cannot convert from 'method group' to 'string'

5 respostas

Oi, Miguel, tudo bem?

Como está seu script?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;


public class BarraVida : MonoBehaviour
{
    private ControlaJogador scriptControlaJogador;
    public Slider SliderVidaJogador;
    public GameObject PainelDeGameOver;
    public TMP_Text TextoTempoDeSobrevivencia;
    public TMP_Text TextoPontuacaoMaxima;
    private float tempopontuacao;
    private int ZumbisMortos;
    public TMP_Text  TextoQuantidadeDeZumbisMortos;

    void Start()
    {
        scriptControlaJogador = GameObject.FindWithTag("jogador").GetComponent<ControlaJogador>();

        SliderVidaJogador.maxValue = scriptControlaJogador.statusJogador.Vida;
        AtualizarSlider();
        Time.timeScale = 1;
        tempopontuacao = PlayerPrefs.GetFloat("pontuacaoMaxima");
    }




    public void AtualizarSlider()
    {
        SliderVidaJogador.value = scriptControlaJogador.statusJogador.Vida;


    }

    public void QuantidadeDeZumbis()
    {
        ZumbisMortos++;
        TextoQuantidadeDeZumbisMortos.text = string.Format("x {0}", QuantidadeDeZumbis); 
    }


    public void GameOver()
    {
        Time.timeScale = 0;
        PainelDeGameOver.SetActive(true); 
        int minutos = (int)(Time.timeSinceLevelLoad / 60);
        int segundos = (int)(Time.timeSinceLevelLoad % 60);
        TextoTempoDeSobrevivencia.text = "você sobreviveu por " + minutos + "min e " + segundos + "s" ;
        AjustarPontuacaoMaxima(minutos, segundos);
    }

    void AjustarPontuacaoMaxima (int min, int seg)
    {
        if (Time.timeSinceLevelLoad > tempopontuacao)   
        {
          tempopontuacao = Time.timeSinceLevelLoad;
            TextoPontuacaoMaxima.text = string.Format("seu melhor tempo foi {0}min e {1}s", min, seg);
            PlayerPrefs.SetFloat("pontuacaoMaxima", tempopontuacao);
        }
        if (TextoPontuacaoMaxima.text == "" )
        {
            min = (int)tempopontuacao / 60;
            seg = (int)tempopontuacao % 60;
            TextoPontuacaoMaxima.text = string.Format("seu melhor tempo foi {0}min e {1}s", min, seg);
        }



    }
    
    
    
    public void Reiniciar () 
    {
        SceneManager.LoadScene("projeto");
    }


}
solução!

Essa linha parece meio estranha

TextoQuantidadeDeZumbisMortos.text = string.Format("x {0}", QuantidadeDeZumbis); 

Será que não era pra usar a variavel ZumbisMortos?

eu substituo em qual?

Dá uma olhadinha de novo no vídeo, na linha que marquei a gente não usa o nome do método, mas sim a variável que a gente acabou de fazer ++ na linha de cima.

Bons estudos!