J'ai un souci récurrent avec les ScrollView. Dès que je souhaite réactualiser la liste j'ai toujours quelques objects qui ne s'actualisent pas. Exemple :
Première utilisation, tout se passe bien :
Deuxième utilisation, je change de perso, ça se gâte... (il n'y en a que 2, ça c'est normal)
Je reviens sur le premier...
Pour actualiser je fais un bête Destroy avec une boucle, et je recommence. J'ai fait du Debug.Log a chaque étape et tout semble se faire dans le bon ordre et sans encombre. Je ne comprend pas
Mon code :
Code : Tout sélectionner
public void AfficherJoueurs()
{
foreach (Transform child in ContentChoixPlayer.transform) { GameObject.Destroy(child.gameObject); }
Players[] Player = JsonHelperPlayers.FromJson<Players>(calculStats.ListePlayers);
List<string> classementMini = new List<string>();
List<string> classementID = new List<string>();
int taillePlayerTab = Player.Length;
for (int i = 0; i < taillePlayerTab; i++)
{
if (nomJoueur.text == Player[i].Nom)
{
Instantiate(BouttonChoixPlayer, ContentChoixPlayer.transform);
classementMini.Add(calculStats.ListeMiniatures[i]);
classementID.Add(Player[i].ID);
}
}
for (int a = 0; a < classementMini.Count; a++)
{
ContentChoixPlayer.transform.GetChild(a).transform.GetChild(0).GetComponent<Text>().text = classementID[a];
byte[] Bytes = Convert.FromBase64String(classementMini[a]);
Texture2D newSprite = new Texture2D(1, 1);
newSprite.LoadImage(Bytes);
Image Img = ContentChoixPlayer.transform.GetChild(a).GetComponent<Image>();
Sprite mySprite = Sprite.Create(newSprite, new Rect(0.0f, 0.0f, newSprite.width, newSprite.height), new Vector2(0.5f, 0.5f), 100.0f);
Img.sprite = mySprite;
}
}
Merci !