il m'arrive depuis quelques jours un TRUC que je ne saurai expliquer!
j'ai pourtant tester 36 000 manières différentes, mais le problème n'est pas résolu.
Voilà, je fais un appel via le SDK Facebook pour afficher ma liste d'amis dans un scroll,
jusque là tout va bien, les amis sont là ainsi que leur score et leur avatar...
Le beug c'est que pour les afficher dans le scroll, je duplique un bloc dans lequel sont affichées des données vierges, dans le niveau mais caché de la caméra, le script en fait des "Clones" autant de fois qu'il y a d'amis et les "transform.parent" dans le scroll pour les afficher à l'écran.
Le problème c'est qu'en les "transform.parent" cela modifie considérablement le scale et la position z du bloc de données... (genre scale de 1,1,1 qui devient 1200,1200,1200 et position z de 0 qui devient 152658) donc du coup , c'est tout pourri LOL
pendant le jeu, si je remet le scale et la position z correctement tout est bien à sa place.
Les données vierges sont dans un panel qui a exactement les mêmes propriétés que le panel ou doivent s'affichés les Clones, et tout ça dans le même Canvas!
Voici le code qui génére les données
Code : Tout sélectionner
public void QueryScores(){
FB.API ("/app/scores?fields=score,user.limit(30)", Facebook.HttpMethod.GET, ScoresCallback);
}
private void ScoresCallback(FBResult result){
Debug.Log ("Scores Callback: " + result.Text);
ScoresDebug.text = "";
scoresList = Util.DeserializeScores (result.Text);
foreach (Transform child in ScoreScrollList.transform)
{
GameObject.Destroy (child.gameObject);
}
foreach (object score in scoresList) {
var entry = (Dictionary<string,object>)score;
var user = (Dictionary<string,object>)entry ["user"];
ScoresDebug.text = ScoresDebug.text + "UN: " + user ["name"] + " - " + entry ["score"] + ", ";
GameObject ScorePanel; // c'est sur ces 3 lignes que le code détecte
ScorePanel = Instantiate (ScoreEntryPanel) as GameObject; // le panel à dupliquer
ScorePanel.transform.parent = ScoreScrollList.transform; // et qu'il le change de parent...et là, PAF!!!
Transform ThisScoreName = ScorePanel.transform.Find ("FriendName");
Transform ThisScoreScore = ScorePanel.transform.Find ("FriendScore");
Text ScoreName = ThisScoreName.GetComponent<Text>();
Text ScoreScore = ThisScoreScore.GetComponent<Text>();
ScoreName.text = user["name"].ToString();
ScoreScore.text = entry["score"].ToString();
}
}
Merci de votre aide