前提・実現したいこと
Firebaseに保存してあるデータを取り出すメソッドと、その値を元に処理を行うメソッドがあります。
データを取り出すメソッドの実行を待って、データが取得されたら後者のメソッドを実行したいです。
発生している問題・エラーメッセージ
データを取り出すメソッドで変数に保存される前に後者のメソッドが実行されてしまうのか、変数が0になってしまいます。
冗長なコードでお恥ずかしいですがご教授ください。
該当のソースコード
C#
1 private void Awake() { 2 SetRoomAndItem(0); 3 } 4 5 6 public void SetRoomAndItem(int num){ 7 LoadRoomData(0); 8 int i = 0; 9 for(i=0;i<3;i++){ 10 Instantiate(items[itemData[i,0]],new Vector3((float)itemData[i,1],(float)itemData[i,2],(float)itemData[i,3]), Quaternion.identity); 11 } 12 } 13 14 private void LoadRoomData(int num){ 15 FirebaseDatabase.DefaultInstance.GetReference("room").Child("0").Child("item").GetValueAsync().ContinueWith(task => { 16 if (task.IsFaulted) { 17 // Handle the error... 18 } 19 else if (task.IsCompleted) { 20 DataSnapshot snapshot = task.Result; 21 22 for(int i=0;i<3;i++){ 23 for(int k=0;k<4;k++){ 24 itemData[i,k] = Convert.ToInt32(snapshot.Child(i.ToString()).Child(k.ToString()).Value); 25 Debug.Log("["+i+k+"]"+itemData[i,k]); 26 } 27 } 28 } 29 }); 30 } 31
試したこと
LoadRommData()の最後にSetItemData()を実行しようとしましたが動きませんでした。
補足情報(FW/ツールのバージョンなど)
Unity2011.1.9f1
あなたの回答
tips
プレビュー