https://www.youtube.com/watch?v=9VtfajLzSrg
こちらの動画を参考にカードゲームのカード生成を行なっているのですが、
NullReferenceException: Object reference not set to an instance of an object
CardModel..ctor (System.Int32 cardID) (at Assets/Script/CardModel.cs:14)
CardController.Init (System.Int32 cardID) (at Assets/Script/CardController.cs:12)
GameManager.CreateCard (UnityEngine.Transform hand) (at Assets/Script/GameManager.cs:20)
GameManager.Start () (at Assets/Script/GameManager.cs:12)
というエラーが出てしまいます。
スペル間違いを見直したり名前を変更したりしているのですが消えません。
大変初歩的な質問で申し訳ありません。
原因として何が考えられますでしょうか。アドバイスお願いいたします。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5//カードのデータと処理をするクラス 6public class CardModel 7{ 8 public string name; 9 public Sprite icon; 10 11 public CardModel(int cardID) 12 { 13 CardEntity cardEntity = Resources.Load<CardEntity>("CardEntityList/Card" + cardID); 14 name = cardEntity.name; 15 icon = cardEntity.icon; 16 } 17} 18
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5//見た目とデータに関するクラス 6public class CardController : MonoBehaviour 7{ 8 CardModel model; 9 10 public void Init(int cardID) 11 { 12 model = new CardModel(cardID); 13 } 14} 15
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class GameManager : MonoBehaviour 6{ 7 [SerializeField] Transform playerHandTransform; 8 [SerializeField] CardController cardPrefab; 9 10 void Start() 11 { 12 CreateCard(playerHandTransform); 13 } 14 15 void CreateCard(Transform hand) 16 { 17 //手札の位置にカードを生成 18 CardController card = Instantiate(cardPrefab, hand, false); 19 card.Init(1); 20 } 21} 22
回答2件
あなたの回答
tips
プレビュー