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

Ranking não se atualiza

Boa tarde, meu ranking como o titulo fala não se atualiza com novas infomações ele, até pensei se segui-se com a aula esse problema seria resolvido, o que esta acontecendo?

Ranking

 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
using UnityEngine;
using System.IO;

public class Ranking : MonoBehaviour
{
private static string NOME_DO_ARQUIVO = "Ranking.json";
[SerializeField]
private List<int> pontos;

private string caminhoParaOArquivo;
private void Awake()
{
    caminhoParaOArquivo = Path.Combine(Application.persistentDataPath ,
    NOME_DO_ARQUIVO);
    var textoJson = File.ReadAllText(caminhoParaOArquivo);
    JsonUtility.FromJsonOverwrite(textoJson, this);

}

public void AdicionarPontuacao(int pontos)
{
    this.pontos.Add(pontos);
    SalvarRanking();
}

public int Quantidade()
{
    return this.pontos.Count;
}

public ReadOnlyCollection<int> GetPontos()
{
    return this.pontos.AsReadOnly();
}

private void SalvarRanking()
{
    var textoJson = JsonUtility.ToJson(this);
    
    File.WriteAllText(caminhoParaOArquivo, textoJson);
}
}

ItemRanking

public class ItemRanking : MonoBehaviour
{ 
[SerializeField]
private Text textoColocacao;
[SerializeField]
private Text textoNome;
[SerializeField]
private Text textoPontuacao;

public void Configurar(int colocacao, string nome, int pontuacao)
{
    this.textoColocacao.text = colocacao.ToString();
    this.textoNome.text = nome;
    this.textoPontuacao.text = pontuacao.ToString();

}
}

PainelRanking

 public class PainelRanking : MonoBehaviour
  {
[SerializeField]
private Ranking ranking;
[SerializeField]
private GameObject prefabColocado;

private void Start()
{        
    var listaDePontos = this.ranking.GetPontos();
    for(var i=0; i<listaDePontos.Count; i++)
    {
        if(i >= 5)
        {
            break;
        }
        var colocado = GameObject.Instantiate(this.prefabColocado, transform);
        colocado.GetComponent<ItemRanking>().Configurar(i,"Vitor", listaDePontos[i]);
      
    }
}
}
2 respostas

posta teu codigo no github e manda aqui, é melhor!

solução!

Boa Tarde, nem precisa mais só foi eu seguir a dica de uma colega da aula anterior e deu certo, mas obrigado pela atenção.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software