以下のようなコードでPrefabからオブジェクト生成をして、子要素の画像を変更しようとしたところ、目的の画像が表示されず真っ白になってしまいます。エラーなどは発生していません。表示されないのはなぜでしょうか。
Prefabの子要素は、Image,Textsで、Textsの子要素はId,Name,Typeです。
インスペクタから画像を登録すればもちろん表示できますが、数が多く、できればスクリプトから設定したいです。
C#
1public class SearchButton : MonoBehaviour 2{ 3 public GameObject prefab; 4 public GameObject parent; 5. 6. 7. 8 public void OnClick() 9 { 10 foreach (CardInfo cardInfo in cardList) 11 { 12 GameObject card = Instantiate(prefab, parent.transform); 13 string path = $"images/{Id}/{Id}_{cardInfo.Id}.jpg"; 14 Sprite sprite = Resources.Load<Sprite>(path); 15 card.transform.Find("Image").GetComponent<Image>().sprite = sprite; 16 card.transform.Find("Texts").Find("Id").GetComponent<Text>().text = cardInfo.Id; 17 card.transform.Find("Texts").Find("Name").GetComponent<Text>().text = cardInfo.Name; 18 card.transform.Find("Texts").Find("Type").GetComponent<Text>().text = cardInfo.CardType; 19 } 20 } 21 22 public class CardInfo 23 { 24 public string Id{ get; set; } 25 public string Name{ get; set; } 26 public string CardType{ get; set; } 27 } 28}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。