【Unity】コンストラクタ生成されていないクラスの変数にインスタンスで初期化しようとするとNullReferenceException

今日のエラー

NullReferenceException: Object reference not set to an instance of an object
開始シーンや初期化のフローによって、上記例外が発生しないことがある。

解決

コンストラクタ生成されていないクラスの変数にインスタンスで初期化しようとすると
NullReferenceExceptionとなる。例えば、

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour
{
	// シングルトン
	Hoge hogeCurrentInstanceMessage = Hoge.Current.InstanceMessage;
	
    public void HogeRead ()
	{
		Debug.Log(hogeCurrentInstanceMessage);
    }
}

この例で言えば、Hoge.Current.InstanceMessageの生成が行われていない状態で
変数hogeCurrentInstanceMessageを初期化しようとすると、コンストラクタの生成時に
NullReferenceExceptionとなる。

環境

  • OSX El Capitan v10.11.5
  • Unity v5.4.0f3

参考

https://docs.unity3d.com/ja/current/Manual/NullReferenceException.html