Como fazer a pontuação aparecer no menu?
Página 1 de 1
Como fazer a pontuação aparecer no menu?
Criei um script para salvar a pontuação e conferir se ela é a maior, aparecendo no final de cada fase a pontuação que ele fez ao jogar. Porém, eu não sei como pegar os valores do jogador nessa fase e colocar para o menu principal, onde apareceria apenas a maior pontuação dele em cada fase
O script que estou utilizando para salvar a pontuação é este:
Alguém pode por favor me dizer como fazer isso?
O script que estou utilizando para salvar a pontuação é este:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class SalvarPontuacao : MonoBehaviour
{
public Text[] pontuacaoTexto;
public string nomeDaCena;
int pontos;
int maiorPontuacao;
private void Start()
{
nomeDaCena = SceneManager.GetActiveScene().name;
pontos = 0;
maiorPontuacao = 0;
pontuacaoTexto[0].text = pontos.ToString();
pontuacaoTexto[1].text = pontos.ToString();
//PlayerPrefs.DeleteKey (nomeDaCena + "score");
if (PlayerPrefs.HasKey(nomeDaCena + "score"))
maiorPontuacao = PlayerPrefs.GetInt(nomeDaCena + "score");
}
private void Update()
{
pontos = ((int)(Gata.contarColetaveis * 10 + ChecarCompletou.contadorAcertos * 1000 + Mensagem.vidasRestantes * 100));
pontuacaoTexto[0].text = "Pontuação: " + pontos.ToString() + " pontos";
pontuacaoTexto[1].text = "Pontuação: " + pontos.ToString() + " pontos";
ChecarScore();
}
void ChecarScore()
{
if (pontos > maiorPontuacao)
{
maiorPontuacao = pontos;
PlayerPrefs.SetInt(nomeDaCena + "score", maiorPontuacao);
}
}
}
Alguém pode por favor me dizer como fazer isso?
Th2y- Membro
- PONTOS : 1769
REPUTAÇÃO : 4
Idade : 23
Áreas de atuação : Programação de jogos digitais
Respeito as regras :
Re: Como fazer a pontuação aparecer no menu?
Th2y escreveu:Criei um script para salvar a pontuação e conferir se ela é a maior, aparecendo no final de cada fase a pontuação que ele fez ao jogar. Porém, eu não sei como pegar os valores do jogador nessa fase e colocar para o menu principal, onde apareceria apenas a maior pontuação dele em cada fase
O script que estou utilizando para salvar a pontuação é este:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class SalvarPontuacao : MonoBehaviour
{
public Text[] pontuacaoTexto;
public string nomeDaCena;
int pontos;
int maiorPontuacao;
private void Start()
{
nomeDaCena = SceneManager.GetActiveScene().name;
pontos = 0;
maiorPontuacao = 0;
pontuacaoTexto[0].text = pontos.ToString();
pontuacaoTexto[1].text = pontos.ToString();
//PlayerPrefs.DeleteKey (nomeDaCena + "score");
if (PlayerPrefs.HasKey(nomeDaCena + "score"))
maiorPontuacao = PlayerPrefs.GetInt(nomeDaCena + "score");
}
private void Update()
{
pontos = ((int)(Gata.contarColetaveis * 10 + ChecarCompletou.contadorAcertos * 1000 + Mensagem.vidasRestantes * 100));
pontuacaoTexto[0].text = "Pontuação: " + pontos.ToString() + " pontos";
pontuacaoTexto[1].text = "Pontuação: " + pontos.ToString() + " pontos";
ChecarScore();
}
void ChecarScore()
{
if (pontos > maiorPontuacao)
{
maiorPontuacao = pontos;
PlayerPrefs.SetInt(nomeDaCena + "score", maiorPontuacao);
}
}
}
Alguém pode por favor me dizer como fazer isso?
Já consegui resolver o problema, achei uma resposta antiga aqui no fórum mesmo (https://www.schultzgames.com/t5384-como-manter-um-valor-salvo-na-cena1-e-zera-lo-na-outra-cena-para-uma-nova-pontuacao?highlight=pontua%C3%A7%C3%A3o)
Mas, caso alguém depois queira ver, o meu acabou ficando assim:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class SalvarPontuacao : MonoBehaviour
{
public Text[] pontuacaoTexto;
public string nomeDaCena;
int pontos;
private int maiorPontuacao;
public Text[] pontosMenu;
private void Start()
{
nomeDaCena = SceneManager.GetActiveScene().name;
pontos = 0;
maiorPontuacao = 0;
if (nomeDaCena != "Menu")
{
pontuacaoTexto[0].text = pontos.ToString();
pontuacaoTexto[1].text = pontos.ToString();
}
http://PlayerPrefs.DeleteKey (nomeDaCena + "score");
if (PlayerPrefs.HasKey(nomeDaCena + "score"))
maiorPontuacao = PlayerPrefs.GetInt(nomeDaCena + "score");
Pontos();
}
void Pontos()
{
if (nomeDaCena == "Menu")
{
pontosMenu[0].text = PlayerPrefs.GetInt("Fase_01score").ToString();
pontosMenu[1].text = PlayerPrefs.GetInt("Fase_02score").ToString();
Debug.Log(PlayerPrefs.GetInt("Fase_01score"));
Debug.Log(PlayerPrefs.GetInt("Fase_02score"));
}
else if (nomeDaCena == "Menu_2")
{
pontosMenu[0].text = PlayerPrefs.GetInt("Fase_01_2score").ToString();
//pontosMenu[1].text = PlayerPrefs.GetInt("Fase_02_2score").ToString();
Debug.Log(PlayerPrefs.GetInt("Fase_01_2score"));
}
else if (nomeDaCena == "Menu_3")
{
pontosMenu[0].text = PlayerPrefs.GetInt("Fase_01_3score").ToString();
//pontosMenu[1].text = PlayerPrefs.GetInt("Fase_02_3score").ToString();
Debug.Log(PlayerPrefs.GetInt("Fase_01_3score"));
}
else if (nomeDaCena == "Menu_4")
{
pontosMenu[0].text = PlayerPrefs.GetInt("Fase_01_4score").ToString();
//pontosMenu[1].text = PlayerPrefs.GetInt("Fase_02_4score").ToString();
Debug.Log(PlayerPrefs.GetInt("Fase_01_4score"));
}
else if (nomeDaCena == "Menu_5")
{
pontosMenu[0].text = PlayerPrefs.GetInt("Fase_01_5score").ToString();
//pontosMenu[1].text = PlayerPrefs.GetInt("Fase_02_5score").ToString();
Debug.Log(PlayerPrefs.GetInt("Fase_01_5score"));
}
}
private void Update()
{
pontos = ((int)(Gata.contarColetaveis * 10 + ChecarCompletou.contadorAcertos * 1000 + Mensagem.vidasRestantes * 100));
if (nomeDaCena != "Menu")
{
pontuacaoTexto[0].text = "Pontuação: " + pontos.ToString() + " pontos";
pontuacaoTexto[1].text = "Pontuação: " + pontos.ToString() + " pontos";
}
ChecarScore();
}
void ChecarScore()
{
if (pontos > maiorPontuacao)
{
maiorPontuacao = pontos;
PlayerPrefs.SetInt(nomeDaCena + "score", maiorPontuacao);
}
}
}
Th2y- Membro
- PONTOS : 1769
REPUTAÇÃO : 4
Idade : 23
Áreas de atuação : Programação de jogos digitais
Respeito as regras :
Tópicos semelhantes
» Como fazer para aparecer poucas resoluções no meu menu de opções.
» Fazer pontuação aparecer momentaneamente e sumir dando erro
» Como ignorar um erro? fazer ele parar de aparecer no console?
» Como fazer mensagem aparecer na tela?
» Como fazer uma partícula da UI aparecer na câmera?
» Fazer pontuação aparecer momentaneamente e sumir dando erro
» Como ignorar um erro? fazer ele parar de aparecer no console?
» Como fazer mensagem aparecer na tela?
» Como fazer uma partícula da UI aparecer na câmera?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos