Unityでインスタンス化したItemDatabaseから別のスクリプトで要素を取り出したときにNullReferenceになるのを解消したい。

実現したいこと

ItemDatabaseから特定のオブジェクトを別のスクリプトで取り出したい。

前提

ここに質問の内容を詳しく書いてください。
(例)
UnityでアイテムのObjectをItemDatabaseを使って管理しているのですが、別のスクリプトからそのデータベース内のObjectからとってこようと思ったときにItemDatabaseスクリプトをインスタンス化して、別のスクリプトから参照してみたのですがNullReferenceになってしまいました。どのように解決すればよいのでしょうか。

発生している問題・エラーメッセージ

NullReferenceException: Object reference not set to an instance of an object I

該当のソースコード

C♯

1using System.Collections;2using System.Collections.Generic;3using UnityEngine;4 5public class ItemChanger : MonoBehaviour 6{7 GameObject beforeItem;8 9 GameObject changeItem;10 11 // Start is called before the first frame update12 void Start()13 {14 15 }16 17 // Update is called once per frame18 void Update()19 {20 21 }22 public void MyNumber(int num)23 {24 25 changeItem = ItemDatabase.instance.itemList[num].itemObject ;26 }27 28 public void ChangeItem()29 {30 if(beforeItem == null)31 {32 changeItem.SetActive(true);33 }34 else if (beforeItem != null)35 {36 for(int i = 0; i <= ItemDatabase.instance.itemList.Count; i++)37 {38 beforeItem = ItemDatabase.instance.itemList[i].itemObject;39 beforeItem.SetActive(false);40 }41 42 changeItem.SetActive(true);43 }44 }45}46 47ここからDataBaseのほうのスクリプトです_________________________ 48 49public class ItemDatabase : ScriptableObject 50{51 52 public static ItemDatabase instance;53 54 private void Awake()55 {56 instance = this;57 }58 public List<ThrownItem> itemList = new List<ThrownItem>();59 60 61 62}63 64

試したこと

色々調べてみたのですが、これというものがなくて困っています。
独学で勉強している初心者なので、用語に間違いなどがあると思います。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント