NCMBでNullReferenceExceptionになる原因

NCMB(Nifty Cloud Mobile Backend)を使っていて、NCMBオブジェクトを取得するときにエラーが出たことがあったので、その原因と解決方法。

まずその時出たエラーがこれです。

NullReferenceException: Object reference not set to an instance of an object
NCMB.Internal.NCMBConnection._Connection (System.Object callback) (at Assets/NCMB/Script/NCMBConnection.cs:135)
NCMB.Internal.NCMBConnection.Connect (NCMB.HttpClientCallback callback) (at Assets/NCMB/Script/NCMBConnection.cs:127)

(以下略)

そこで、エラーが出ているNCMBConnection.csの135行目あたりを見てみると・・・


private void _Connection (object callback)
{
    GameObject gameObj = GameObject.Find ("NCMBSettings");
    NCMBSettings settings = gameObj.GetComponent ();
    settings.Connection (this, callback);
}

GameObject.Find ("NCMBSettings");

でNCMBSettingsコンポーネントがアタッチされたGameObjectを探している!!

ということは、NCMBSettingsスクリプトをアタッチするGameObjectは、必ず「NCMBSettings」という名前でなければならない、ということですね。

勝手な名前にしていたのでNCMBSettingsコンポーネントが見つからず、データの取得が行われていないようでした。

NCMBSettingsスクリプトをアタッチしたGameObjectの名前を「NCMBSettings」にすれば、データの取得に成功しました。

コメント