質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

15224閲覧

別のクラスで作成したdictionaryを呼び出そうとした際にKeyNotFoundExceptionが出てしまいます。

kadyu

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2016/08/06 12:40

###前提・実現したいこと
はじめまして。
Unityにて各キャラクターのステータスデータをCSVで取り込み、dictionaryに各々格納したものをGUI表示用のクラスから呼び出そうとしましたが、KeyNotFoundExceptionが出てしまいました。ステータスデータを読み込んでるクラス内でdictionary内にある値を取り出し、表示することは出来ましたがなぜ外部のからは呼び出せないのでしょうか?自分でも調べてみましたがちょっとわからなかったためこちらで質問します。

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

エラーメッセージ KeyNotFoundException: The given key was not present in the dictionary. System.Collections.Generic.Dictionary`2[System.String,System.Int32].get_Item (System.String key) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:150) readCSV.ibuki_HPSet () (at Assets/Script/readCSV.cs:65) ibuki_Status.Start () (at Assets/Script/ibuki_Status.cs:17)

###該当のソースコード

C#

1 2//Read.cs 3 Dictionary<string, int> map = new Dictionary<string, int>(); 4 5//DIctionaryにCSVのデータを取り込む処理は省略。 6 7 public int HPSet() 8 { 9 return map["HP"]; 10 } 11 12----------------------------------------------------------------------------- 13 14 15

C#

1 2//Status.cs 3 4 int HP; 5 6 Read read = GetComponent<Read>(); 7 HP = read.HPSet(); 8

###試したこと
Read.cs内ではdictionaryの値を呼び出すことは出来ました。

以上、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DIctionaryにCSVのデータを取り込む処理

上記処理が呼び出される前に、
HPSetメソッドを呼び出しているとかはないでしょうか?

投稿2016/08/06 13:15

編集2016/08/06 13:16
Panzer_vor

総合スコア1636

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr_Roboto

2016/08/06 13:20

お邪魔します。 コードが省略されすぎて分かりませんが、 そもそも呼んで無い気がしますが、、、
kadyu

2016/08/06 13:52

どうやらDIctionaryにCSVのデータを取り込む処理の前にHPsetが呼ばれていたみたいです。read.cs側のStartメソッドでDIctionaryの処理の後にstatusの初期設定クラスを実行するように修正したところ、うまくいきました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問