前提・実現したいこと
ニフクラ mobile backendのUnity SDKを用いてランキング機能を実装しているのですが、
データは取得できているにも関わらず、一瞬だけ結果が表示されてすぐに強制終了されてしまう状況です。
こちらの解決方法をご教示いただきたいです。
発生している問題・エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object RankingHyoji+<>c__DisplayClass1_0.<Update>b__0 (System.Collections.Generic.List`1[T] objList, NCMB.NCMBException e) (at Assets/RankingHyoji.cs:30) NCMB.NCMBQuery`1+<>c__DisplayClass44_0[T].<Find>b__0 (System.Int32 statusCode, System.String responseData, NCMB.NCMBException error) (at Assets/NCMB/Script/NCMBQuery.cs:588) NCMB.Internal.NCMBConnection+<SendRequest>d__37.MoveNext () (at Assets/NCMB/Script/NCMBConnection.cs:458) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Scripting/Coroutines.cs:17)
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; using NCMB; using System.Linq; using UnityEngine.UI; public class RankingHyoji : MonoBehaviour { private Text targetText; void Update () { //順位のカウント int count = 0; string tempScore = ""; NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("data"); ///Scoreフィールドの降順でデータを取得 query.OrderByDescending ("score"); //検索件数を5件に設定 query.Limit = 5; query.FindAsync ((List<NCMBObject> objList ,NCMBException e) => { if (e != null) { UnityEngine.Debug.Log ("ランキング取得失敗"); } else { //検索成功時の処理 UnityEngine.Debug.Log ("ランキング取得成功"); // 値とインデックスのペアをループ処理 foreach (NCMBObject obj in objList) { count++; tempScore += count.ToString() + "位:" + ":ユーザー名:" + obj ["UserName"] + ":スコア:" + obj ["score"] + "\r\n"; this.GetComponent<Text>().text = tempScore; } } }); } }
補足情報
Consoleにはランキング取得成功
と表示されており、Textにも問題なくデータが取得・表示されています。
あなたの回答
tips
プレビュー