タイトル通りなのですが、
Unityでscrollviewとlistを組み合わせてprefabで動的に生成したらヒエラルキーの順序が
なぜか乱れます。配列Aに10個のprefabが入れてあり、それを順番にcontentの子要素として入れているのに、なぜか配列Aの一番最後の要素がヒエラルキーでは一番最初に表示されています。あとは一つずつ順番がずれていってしまいます。
こちらのサイトでも似たようなことが記載してありましたが、私は動的にprefabを生成したいので、記事のように解決できませんでした。
scrollviewとlistの組み合わせは
こちらのサイトなどを参考にさせていただきました。
一番最後のcontentを親に指定している部分でおかしなことが起きているのでしょうか?
データはNCMBのデータベースから取得しています。
using System.Collections; using System.Collections.Generic; using UnityEngine; using NCMB; using UnityEngine.UI; using UnityEngine.SceneManagement; public class ScoreManager : MonoBehaviour { public List<string> nameList = new List<string>(); public List<int> scoreList = new List<int>(); public RectTransform content; public GameObject item_prefab; public Text textName; public Text textScore; public void getScoreRanking() { NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("RankingClass");//RankingClassの query.OrderByDescending("Score"); // スコアを降順に並び替える query.Limit = 20; // 上位(数字の数)件のみ取得 query.FindAsync((List<NCMBObject> objList, NCMBException e) => { if (e == null) { //検索成功したら for (int i = 0; i < objList.Count; i++) { string name = System.Convert.ToString(objList[i]["userName"]); // 名前を取得 int score = System.Convert.ToInt32(objList[i]["Score"]); // スコアを取得 nameList.Add(name); scoreList.Add(score); //scrollviewのcontentの子要素を準備 GameObject item = GameObject.Instantiate(item_prefab) as GameObject; textName.text = nameList[i];// ListViewItem のインスタンス作成. textScore.text = scoreList[i].ToString(); RectTransform itemTransform = (RectTransform)item.transform; itemTransform.SetParent(content, false); // 作成したItemをContentの子要素に設定. } } }); }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/23 09:32