前提
Unityを触ってみようと勉強している初心者です。
InputFieldの文字を読み込んでみようとして、解説されているHPに従ってスクリプトを書いてみたのですがエラーが発生して行き詰ってしまいました。
実現したいこと
UnityでInputFieldの文字を読み込こんでコンソールに表示しようとしたのですが、
NullReferenceExceptionと表示されるエラーが発生してしまいました。
本当に初歩的なところで恐縮ですがご教授願います。
発生している問題・エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object
Test01.Display () (at Assets/Script/Test01.cs:18)
UnityEngine.Events.InvokableCall.Invoke () (at <86acb61e0d2b4b36bc20af11093be9a5>:0)
UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <86acb61e0d2b4b36bc20af11093be9a5>:0)
TMPro.TMP_InputField.SendOnEndEdit () (at library/packagecache/com.unity.textmeshpro@3.0.6/scripts/runtime/tmp_inputfield.cs:3149)
TMPro.TMP_InputField.ReleaseSelection () (at library/packagecache/com.unity.textmeshpro@3.0.6/scripts/runtime/tmp_inputfield.cs:4146)
TMPro.TMP_InputField.DeactivateInputField (System.Boolean clearSelection) (at library/packagecache/com.unity.textmeshpro@3.0.6/scripts/runtime/tmp_inputfield.cs:4184)
TMPro.TMP_InputField.OnUpdateSelected (UnityEngine.EventSystems.BaseEventData eventData) (at library/packagecache/com.unity.textmeshpro@3.0.6/scripts/runtime/tmp_inputfield.cs:2161)
UnityEngine.Ev
該当のソースコード
C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test01 : MonoBehaviour
{
InputField inputField01; void Start() { inputField01 = GameObject.Find("InputField01").GetComponent<InputField>(); } public void Display() { string text01 = inputField01.text; Debug.Log(text01); }
}
試したこと
inputField01 = GameObject.Find("InputField01").GetComponent<InputField>();
の後に、
if (inputField01 == null)
{
Debug.Log("null");
}
と付け加えたら、コンソールにnullと表示されたので、inputField01にデータを入れられていないのだろうとは思ったのですが、なぜ入れられなかったのかがわかりませんでした。
また、InputFieldではなく、Textでも同様に試し、文字をコンソールに表示させようとしましたが、同様にnullエラーが発生してしまいました。
ただ、GameObjectはnullが発生することなく読み込むことができました。
補足情報(FW/ツールのバージョンなど)
Unityのバージョンは2021.3.11f1です。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/10/21 00:13