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

Pontuação máxima não salva

Bom dia, o jogo não está salvando a pontuação máxima, mesmo utilizando o PlayerPrefs, estou enviando o projeto em rar e também o código do ControlaInterface

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

public class ControlaInterface : MonoBehaviour
{

    private ControlaJogador scriptControlaJogador;
    public Slider SliderVidaJogador;
    public GameObject PainelDeGameOver;
    public Text TextoDoTempoDeSobrevivencia;
    public Text TextoPontuacaoMaxima;
    private float tempoPontuacaoSalvo;

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

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

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

    public void GameOver ()
    {
        PainelDeGameOver.SetActive(true);
        Time.timeScale = 0;

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

        AjustarPontuacaoMaximo(minutos, segundos);

    }

    void AjustarPontuacaoMaximo (int min, int seg)
    {
        if (Time.timeSinceLevelLoad > tempoPontuacaoSalvo)
        {
            tempoPontuacaoSalvo = Time.timeSinceLevelLoad;
            TextoPontuacaoMaxima.text = "Seu melhor tempo é de " + min + " minutos e " + seg + " segundos";
            PlayerPrefs.SetFloat("PontuacaoMaximo", tempoPontuacaoSalvo);
        }

        if (TextoPontuacaoMaxima.text == "")
        {
            min = (int)tempoPontuacaoSalvo / 60;
            seg = (int)tempoPontuacaoSalvo % 60;
            TextoPontuacaoMaxima.text = "Seu melhor tempo é de " + min + " minutos e " + seg + " segundos";
        }
    }

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

link do projeto https://drive.google.com/file/d/1uELwhPRxkIpPcGGGkLUwLcUPJzb3P75l/view?usp=sharing

2 respostas

Achei onde estava o erro kkkkkk não ia conseguir dormir sem arrumar isso, ao invés de colocar "tempoPontuacaoSalvo = PlayerPrefs.GetFloat("PontuacaoMaximo");" eu coloquei "tempoPontuacaoSalvo = PlayerPrefs.GetFloat("PontuacaoMaxima");", já está resolvido! :)

solução!

Que bom que conseguiu Felipe!

Espero que esteja curtindo o curso, qualquer coisa estamos por aqui

Bons estudos!