1
resposta

Alteração no PainelListaDeColocados

Estou em dúvidas na questão da alteração da lista. O meu continua inalterado, mesmo tendo replicado o código da aula dado pelo professor. Alguém poderia me dar uma mão pois, estou quebrando a cabeça para encontrar a solução de meu erro. Agradeço desde já.

O código do ItemRanking:

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

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();
}

}

Código do PainelRanking:

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

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

private void Start()
{
    var quantidade = this.ranking.Quantidade();
    for (var i = 0; i < quantidade; i++) 
    {
        if (i >= 5)
        {
            break;
        }
        var colocado = GameObject.Instantiate(this.prefabColocado, this.transform);
         colocado.GetComponent<ItemRanking>().Configurar(i, "Ricardo", 999);

    }
}

}

1 resposta

Oi, Tales! também aconteceu o mesmo comigo, os itens do painel não estavam sendo alterados. Aí fiz assim, dentro do PainelRanking, onde se instancia os colocados e deu certo. Agora só falta arrumar depois o nome, que acho que o professor irá explicar na próxima aula.

void Start()
{
    var listaDePontos = this.ranking.GetPontos();

    for(var i=0; i<listaDePontos.Count; i++){
       if(i>5){
           break;
       }
       var colocado = GameObject.Instantiate(this.prefabColocadoItem, this.transform);

       ConfigurarTextos(colocado.GetComponentsInChildren<Text>(), i, listaDePontos[i]);
    }
}

private void ConfigurarTextos(Text[] listaTextos, int i, int pontuacao){
    listaTextos[0].text = i.ToString();
    listaTextos[1].text = "novoNome";
    listaTextos[2].text = pontuacao.ToString();
}

}