Quando eu aplico o PlayerPrefs.SetFloat o texto com o maior tempo de jogo não aparece no game over, o campo fica em branco.
public class ControlaInterface : MonoBehaviour
{
private ControlaJogador scriptControlaJogador;
public Slider sliderVidaJogador;
public GameObject PainelDeGameOver;
public Text TextoTempoDeSObrevivencia;
public Text TextoPontuacaoMaximo;
private float tempoPontuacaoSalva;
// Start is called before the first frame update
void Start()
{
scriptControlaJogador = GameObject.FindWithTag(Tags.Jogador)
.GetComponent<ControlaJogador>();
sliderVidaJogador.maxValue = scriptControlaJogador.statusJogador.Vida;
atualizarSlideDano();
Time.timeScale = 1;
tempoPontuacaoSalva = PlayerPrefs.GetFloat("PontuacaoMaxima");
}
public void atualizarSlideDano()
{
sliderVidaJogador.value = scriptControlaJogador.statusJogador.Vida;
}
public void GamerOver()
{
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 > tempoPontuacaoSalva)
{
tempoPontuacaoSalva = Time.timeSinceLevelLoad;
TextoPontuacaoMaximo.text = string.Format("Seu melhor tempo é {0}min e {1}seg", min, seg);
PlayerPrefs.SetFloat("PontuacaoMaxima", tempoPontuacaoSalva);
}
if(TextoPontuacaoMaximo.text == "")
{
min = (int)tempoPontuacaoSalva / 60;
seg = (int)tempoPontuacaoSalva % 60;
TextoPontuacaoMaximo.text = string.Format("Seu melhor tempo é {0}min e {1}seg", min, seg);
}
}
public void Reiniciar()
{
SceneManager.LoadScene("game");
}
}