前提・実現したいこと
動的にSpriteRendererで画像を表示したいですが、inspectorのspriterendererのspriteにnoneと表示されます。
該当のソースコード
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class CardManager : MonoBehaviour { List<GameObject> OwnHand; List<GameObject> OpponentHand; // Start is called before the first frame update void Start() { OwnHand = new List<GameObject>(10); OpponentHand = new List<GameObject>(10); GameObject card_01 = new GameObject("Card_RedDragon"); card_01.transform.SetParent(GameObject.Find("Canvas").transform); card_01.AddComponent<SpriteRenderer>(); card_01.AddComponent<Card_RedDragon>(); card_01.AddComponent<RectTransform>().anchoredPosition = new Vector3(0, 0, -1); card_01.GetComponent<RectTransform>().localScale = new Vector3(1f,1f,1f); card_01.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>(card_01.AddComponent<Card_RedDragon>().arturl); OwnHand.Add(card_01); } // Update is called once per frame void Update() { } }
arturlはstring型で、ファイルネームが入ります。
試したこと
SpriterendererではなくImageを利用したり、Spriteを返す関数を用意したりしましたがダメでした。
inspectorのDefault references will only be applied in edit modeと書いてあるところで初期設定して見てもダメでした。
Debug.Log(card_01.GetComponent<Card_RedDragon>().arturl);がnullになるので、それをなんとかすれば行けそう?
何度も確認したので、Resourcesに置かなかったとか、ファイルネームを間違えたとかじゃあ断じてないです。最後に、arturlの内容を直接書けば動きますが、それは拡張性がないのでダメです。どうか他の方法を教えてください。お願いします。
補足情報(FW/ツールのバージョンなど)
Unity 2019.4.10f1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/02 01:08