1
resposta

[Bug] Não está funcionando o contador de zumbis, alguém me ajuda?

Eu vou enviar aqui o código do problema se alguém consiga resolver o problema, está no controlaInterface.

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

public class ControlaInterface : MonoBehaviour{

    private ControlaJogador sciptControlaJogador;
    public Slider SliderVidaJogador;
    public GameObject PainelDeGamerOver;
    public Text TextoSobrevivencia;
    public Text TextoPontuacaoMaxima;
    private float tempoPontuacaoSalvo;
    private int quantideDeZumbisMortos;
    public Text TextoQuantideDeZumbisMortos;

    // Start is called before the first frame update
    void Start()
    {
        sciptControlaJogador = GameObject.FindWithTag("Jogador").GetComponent<ControlaJogador>();

        SliderVidaJogador.maxValue = sciptControlaJogador.statusJogador.Vida;
        AutualizarSliderVidaJogador();
        Time.timeScale = 1;
        tempoPontuacaoSalvo = PlayerPrefs.GetFloat("PontuacaoMaxima");
    }

    // Update is called once per frame
    void Update(){

    }

    public void AutualizarSliderVidaJogador ()
    {
          SliderVidaJogador.value = sciptControlaJogador.statusJogador.Vida;
    }

    public void AtualizarQuantidadeZumbisMortos ()
    {
        quantideDeZumbisMortos++;
        TextoQuantideDeZumbisMortos.text = string.Format("X {0}", quantideDeZumbisMortos);
    }
    public void GamerOver ()
    {
        PainelDeGamerOver.SetActive(true);
        Time.timeScale = 0;

        int minutos = (int)(Time.timeSinceLevelLoad / 60);
        int segundos = (int)(Time.timeSinceLevelLoad % 60);
        TextoSobrevivencia.text = "Você sobreviveu por " + minutos + "min e " + segundos +"s";

        AjustarPontuacaoMaxima (minutos, segundos);
    }

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

    public void Reiniciar ()
    {
        SceneManager.LoadScene("game");
    }
}
1 resposta

Oi, Eduardo, mas o que não funciona?

Ele não aparece? não atualiza pra máxima?

Uma coisa que acontece as vezes é no texto do menu ter algum valor lá um enter ou alguma coisa então a linha TextoPontuacaoMaxima.text == "" nunca dá certo, tenta limpar o texto também.