UnityでScrollViewとnodeのprefabを作成してリストビューを作成しました。
そしてエクセルのデータをScriptableObjectにして参照して表示しました。
質問は表示したリストビューの一番上のみなぜかテキストが反映されず空いてしまいます。
for文で流し込むscriptには問題ないような気がします。
どこかおかしいところありましたらご指摘お願いします。
ScrollController4.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System.Linq; public class ScrollController4 : MonoBehaviour { [SerializeField]RectTransform alarmlistPrefab = null; [SerializeField]Entity_catelist ecatelist; [SerializeField]Entity_poplist epoplist; private Image[] alarmImages; private Text[] texts; private int cateId; void Start() { //項目を入れてprefabリストを生成する。GetComponentsInChildrenは子オブジェクトの要素を取得する for(int i = 0; i < 13; i++){ var alarmPrefab = GameObject.Instantiate(alarmlistPrefab) as RectTransform; alarmPrefab.SetParent(transform, false); //OnClickVoicePrefabのindexVoiceNoにconverse_idを入れる alarmPrefab.GetComponentInChildren<OnClickAlarmPrefab>().indexAlarmNo = i.ToString(); alarmImages = alarmlistPrefab.GetComponentsInChildren<Image>(); texts = alarmlistPrefab.GetComponentsInChildren<Text>(); cateId = epoplist.sheets[0].list[i].cate_id; Debug.Log("cateId" + cateId); TextExtension.SetTextWithEllipsis(texts[0], ecatelist.sheets[0].list[cateId -1].cate_Japan); TextExtension.SetTextWithEllipsis(texts[1], epoplist.sheets[0].list[i].popup); texts[2].text = epoplist.sheets[0].list[i].Hour.ToString(); texts[3].text = epoplist.sheets[0].list[i].Min.ToString(); if(i%2 == 0){ alarmImages[1].color = new Color(252.0f/255.0f,209.0f/255.0f,205.0f/255.0f,255.0f/255.0f); }else{ alarmImages[1].color = new Color(255.0f/255.0f,255.0f/255.0f,255.0f/255.0f,255.0f/255.0f); } } } }
↓症状)一番上のprefabのみなぜかテキストデータが入らない。
↓ScrollViewの設定はこんな感じです。
↓contentの設定はこんな感じです。
環境)
PC: mac
Unity2018.2
言語:C#
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/02 23:39