[Facebook Unity SDK] Problème de stockage des données reçues dans un tableau.

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
mickee
Messages : 2
Inscription : 07 Juil 2017 16:34

[Facebook Unity SDK] Problème de stockage des données reçues dans un tableau.

Message par mickee » 07 Juil 2017 16:49

Bonjour,

J'essaye de récupérer le prénom de plusieurs utilisateurs facebook non-amis depuis le SDK Facebook mais je rencontre des probèmes au niveau de la gestion des index (problème de threads) :

Code : Tout sélectionner

   
    m_leaderboard = new LeaderboardData[25];
    for (int i = 0; i < 25; i++)
    {
              yield return new WaitForSeconds(0.5f);
     
              // We just have to load first names
              FB.API("/" + m_leaderboard[i].fuid + "?fields=first_name", Facebook.Unity.HttpMethod.GET,
                  delegate (IGraphResult result)
                  {
                  if (result.Error != null) return;
                  Debug.LogWarning("Index { " + i + " }");
                  m_leaderboard[i].first_name = result.ResultDictionary["first_name"] as String;        
                  }                                  
              );
}
m_leaderboard est simplement un tableau où je souhaite stocker les données utilisateur :

Code : Tout sélectionner

           public struct LeaderboardData
           {
                   public long fuid;
                   public string first_name;
                   public Texture image;
                   public int score;
                   public int rank;
           };
     
           public LeaderboardData[] m_leaderboard;
Le problème est que les index ne sont pas "synchronisés" malgré le délai entre l'appelant de l'API call et le delegate de callback appelé quand la donnée est reçue. Des index sont skippés, les prénoms ne sont pas rangés dans les bonnes cases et surtout le code n'est pas causal : pour deux exécutions, il arrive que le prénom soit décalé, ou non reçu.
(Je précise que les m_leaderboard.fuid sont des identifiants facebook valides).
La question est donc comment "chaîner" des API Calls et maintenir un ordre sur les résultats ?

Merci d'avance pour votre aide,
mickee

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: [Facebook Unity SDK] Problème de stockage des données reçues dans un tableau.

Message par Greg » 11 Juil 2017 21:01

Salut,
c'est hyper spécifique donc je connais pas mais tu peux pas mettre une condition pour t'assurer que l'opération nécessaire soit remplie avant de continuer (retour valide, longueur du tableau, etc) ?
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Répondre

Revenir vers « Scripting »