๋ฆฌ์ผํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ ๊ฒ ์ ์ฅ์ด ๋๊ฑฐ๋ ์. SaveData ์๋์ vR355..๋ ๋ก๊ทธ์ธํ ์ ์ ์ id๊ณ ์ด๊ฑธ ํค๊ฐ์ผ๋ก ๊ฐ์ข ๊ตฌ์กฐ์ฒด๋ค์ ๋ฃ๋ ๋ฐฉ์์ด์์.
์ด๊ฒ ํ๋ ์ด์ด ํด๋์ค์ ์๋ ์ ์ฅ ๊ด๋ จ๋ ํจ์ ๋๊ฐ๋ ์ ์ฅํ ๊ตฌ์กฐ์ฒด.
์ด๊ฒ ์ธ์ด๋ธ ๋งค๋์ ์์ ๊ตฌํํ ์ธ์ด๋ธ๋ก๋ ํจ์ ๋๊ฐ์ธ๋ฐ, ์ธ์ด๋ธ๋ ์ ์์ ์ผ๋ก ์ ์๋์ ํด์. ์์ฒ๋ผ ๊ฒฝํ์น 8 ๋ค์ด๊ฐ์ ์ ์ฅ์ด ๋๋๋ฐ
๋ฌธ์ ๋ ๋ก๋๊ฐ ์๋๋ค์.
Start์์ ์ ๋ก๋๋ฅผ ํธ์ถํ๋๋ฐ ๋ก๊ทธ๋ฅผ ์ฐ์ด๋ณด๋๊น ๊ฒฝํ์น๊ฐ 0์ผ๋ก ๋์ค๋๋ผ๊ตฌ์. ๊ฐ์ด 0์ผ๋ก ๋จ๋๊ฑธ๋ณด๋ฉด ๋ก๋๊ฐ ์ ์๋๋๊ฑฐ๊ฐ์๋ฐ
๊ทธ ์ด์ ๋ฅผ ํ์ ํ๊ธฐ๊ฐ ์ข ์ด๋ ค์์ ๋์์ ๋ฐ๊ณ ์ถ์ต๋๋ค.. ์ ๊ธฐ์ newtonsoft.Json ํจ์๋ aiํํ ๋ฌผ์ด๋ณด๋๊น ์ ๊ฑฐ ์จ๋ณด๋์ ์ด๊ฑด๋ฐ ๊ทธ๋๋ ์๋๋๋ผ๊ตฌ์
ํด๊ฒฐํ์ต๋๋ค.
์ง๊ธ์ ์ json์ ๋ก๋ํ๋ฉด ํค๊ฐ์ธ ์ ์ ์ id๊น์ง ๊ฐ์ด ๋ก๋๋๋๋ฐ ๊ตฌ์กฐ์ฒด์๋ ์ด id๋ฅผ ๋ฐ์์ฌ ๊ณณ์ด ์์ด์ json <-> ๊ตฌ์กฐ์ฒด ๊ฐ์ ๋งค์นญ์ด ์๋์ ๊ทธ๋ฌ๋๋ผ๊ตฌ์
๊ทธ๋์ ai์ ํ์ ๋น๋ ค์
public void LoadGame()
{
ย ย DatabaseReference saveDB = FirebaseDatabase.DefaultInstance.GetReference("SaveData");
ย ย saveDB.OrderByKey().EqualTo(user.UserId).GetValueAsync().ContinueWithOnMainThread(task => {
ย ย ย ย if (task.IsFaulted)
ย ย ย ย {
ย ย ย ย ย ย Debug.LogError("Task Exception: " + task.Exception);
ย ย ย ย }
ย ย ย ย else if (task.IsCompleted)
ย ย ย ย {
ย ย ย ย ย ย DataSnapshot snapshot = task.Result;
ย ย ย ย ย ย if (snapshot.Exists)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย string json = snapshot.GetRawJsonValue();
ย ย ย ย ย ย ย ย Debug.Log("Loaded JSON: " + json);
ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย // JSON์ JObject๋ก ํ์ฑ
ย ย ย ย ย ย ย ย JObject jsonObject = JObject.Parse(json);
ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย // ์ฌ์ฉ์ ID์ ํด๋นํ๋ ๋ด๋ถ ๊ฐ์ฒด๋ฅผ ์ถ์ถ
ย ย ย ย ย ย ย ย JToken userDataToken = jsonObject[user.UserId];
ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย if (userDataToken != null)
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย // ๋ด๋ถ ๊ฐ์ฒด๋ง์ ๋ค์ JSON ๋ฌธ์์ด๋ก ๋ณํ
ย ย ย ย ย ย ย ย ย ย string userDataJson = userDataToken.ToString();
ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย // ์ด์ ์ด JSON ๋ฌธ์์ด์ PlayerSaveData๋ก ์ญ์ง๋ ฌํ
ย ย ย ย ย ย ย ย ย ย var saveData = JsonConvert.DeserializeObject<PlayerSaveData>(userDataJson);
ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย Debug.Log("Deserialized exp: " + saveData.LevelData.exp);
ย ย ย ย ย ย ย ย ย ย player.FromSaveData(saveData);
ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย else
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย Debug.Log("No save data found for this user ID.");
ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย }
ย ย ย ย ย ย else
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย Debug.Log("No save data found for this user.");
ย ย ย ย ย ย }
ย ย ย ย }
ย ย });
}
๋ก ์์ ํ์ต๋๋ค
๋๊ธ 0