Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

Unity Error Fix 〜InputFieldのインスタンスが取れない~

以下のようなエラーが出ます。
NullReferenceException: Object reference not set to an instance of an object
ConsoleWindow.Awake () (at Assets/Script/ConsoleWindow.cs:14)

<Code>
public InputField inputField;
public InputField inputField;
private string commandStart = "コマンド: >";

// Use this for initialization
void Awake () {
Debug.Log("ConsoleWindow.Start");
inputField.onEndEdit.AddListener(AcceptStringInput); InputComplete();
}

上記の赤色の部分で落ちます。
まぁトーゼンですわな。。。インスタンスも参照も取得してないし(笑)

で、inputField(変数)のインスタンス or 参照を取得する方法がわかりませんでした。
そして、ここのサイトにありました。
GameObjectの宣言は必要なく、直接「GetComponent()」で呼び出しができるので
「initialsObject」は必要ありませんでした。
→inputField = GetComponent<InputField>();で取得できました。

  1.  
  2. public class UIManagerScript : MonoBehaviour {
  3.         public GameObject initialsObject; // この行はいらない
  4.         InputField initialsField;
  5.         Text initialsFieldInput;
  6.  
  7.         public void Start(){
                     // initialsObjectもいらない
  8.              initialsField = initialsObject.GetComponent<InputField>();
  9.              initialsFieldInput = initialsField.GetComponent<Text>();
  10.        }
  11.  
  12.       public void otherFunction(){
  13.             Debug.Log(initialsFieldInput.text);
  14.             // error: Object reference not set to an instance of an object
  15.       }
  16. }

    f:id:Takunoji:20180412081836p:plain

    f:id:Takunoji:20180412081847p:plain

    以上です。