c#
1 for (int i = 0; i < 5; i++) 2 { 3 statusText[i] = statusTextObject[i].GetComponent<Text>(); 4 } 5
GetComponentを一括で行おうと↑上記のコードを書いたのですが、エラーが出てしまいました。
どうすればエラーを出さずにGetComponentをまとめて実行できますか?
↓エラー内容(追記)
NullReferenceException: Object reference not set to an instance of an object
StatusUpScript.Update () (at Assets/StatusUpScript.cs:73)
これが大量に表示されます
これだけでは情報が少なすぎます。
考えられるだけでも「statusTextかstatusTextObjectの個数が足りていない」「statusTextObjectにTextをアタッチしていないゲームオブジェクトがある」「statusTextObjectの中にnullが存在する」など、いくらでも考えられます。
エラー内容や各変数がどのようになっているかなど、基本的なことはちゃんと記載してください。
エラーが出たなら、エラーメッセージを提示しましょう
エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
NullReferenceExceptionといっても、どこがnullなのか推測することは(少なくともこれだけの情報では)出来ません。
また、GetComponentも取得に失敗するとnullを返す仕様なので、これが原因の可能性もあります。
以下をご確認してください。
なお、ご確認の際は「正しく処理を書いているため問題ない」と考えるのではなく、デバッガやDebug.Log()で本当に値がnullではないかを確認してください。
- statusText自身がnullではないか
- statusTextの配列内にnullが存在していないか
- statusTextObject自身がnullではないか
- statusTextObjectの配列内にnullが存在していないか
- GetComponent<Text>()の結果がnullではないか