前提・実現したいこと
エラーを解決したいです。
発生している問題・エラーメッセージ
KeyNotFoundException: The given key was not present in the dictionary.
呼び出す側のプロジェクト
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using System.Linq; 5 6 7 8public class CreateSlotScript : MonoBehaviour 9{ 10 11 [SerializeField] 12 private ItemDataBase itemDataBase; 13 [SerializeField] 14 private ItemManager itemManager; 15 16 private void Start() 17 { 18 19 Debug.Log(itemManager.GetHowManyWeponByNumber(1010101)); 20 21 } 22 23} 24
###定義されてるプロジェクト
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ItemManager : MonoBehaviour 6{ 7 8 // アイテムデータベース 9 [SerializeField] 10 private ItemDataBase itemDataBase; 11 // アイテム数管理 12 private Dictionary<WeponDate, int> numOfWepon = new Dictionary<WeponDate, int>(); 13 14 // Use this for initialization 15 void Start() 16 { 17 18 19 for (int i = 0; i < itemDataBase.GetWeponLists().Count; i++) 20 { 21 // アイテム数を0に設定 22 numOfWepon.Add(itemDataBase.GetWeponLists()[i], 0); 23 // 確認の為データ出力 24 Debug.Log(itemDataBase.GetWeponLists()[i].GetItemName() + ": " + itemDataBase.GetWeponLists()[i].GetInformation()); 25 } 26 27 28 29 } 30 31 32 33 34 //serch by number 35 public WeponDate GetWeponByNumber(int searchNumber) 36 { 37 return itemDataBase.GetWeponLists().Find(objectNumber => objectNumber.GetobjectNumber() == searchNumber); 38 } 39 40 41 public int GetHowManyWeponByNumber(int objectnumber) 42 { 43 int HowManyWepon = numOfWepon[GetWeponByNumber(objectnumber)]; 44 return HowManyWepon; 45 46 } 47 48} 49
試したこと
補足情報(FW/ツールのバージョンなど)
C# Unityです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/02 14:52