a16711aa372a76b660b8f68b12d21a1dd680dc35c7


๋ฆฌ์–ผํƒ€์ž„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ด๋ ‡๊ฒŒ ์ €์žฅ์ด ๋˜๊ฑฐ๋“ ์š”. SaveData ์•„๋ž˜์— vR355..๋Š” ๋กœ๊ทธ์ธํ•œ ์œ ์ €์˜ id๊ณ  ์ด๊ฑธ ํ‚ค๊ฐ’์œผ๋กœ ๊ฐ์ข… ๊ตฌ์กฐ์ฒด๋“ค์„ ๋„ฃ๋Š” ๋ฐฉ์‹์ด์—์š”.



7cf3c028e2f206a26d81f6e447847764

์ด๊ฒŒ ํ”Œ๋ ˆ์ด์–ด ํด๋ž˜์Šค์— ์žˆ๋Š” ์ €์žฅ ๊ด€๋ จ๋œ ํ•จ์ˆ˜ ๋‘๊ฐœ๋ž‘ ์ €์žฅํ•  ๊ตฌ์กฐ์ฒด.


7ff3c028e2f206a26d81f6e44f85706a


์ด๊ฒŒ ์„ธ์ด๋ธŒ ๋งค๋‹ˆ์ €์—์„œ ๊ตฌํ˜„ํ•œ ์„ธ์ด๋ธŒ๋กœ๋“œ ํ•จ์ˆ˜ ๋‘๊ฐœ์ธ๋ฐ, ์„ธ์ด๋ธŒ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž˜ ์ž‘๋™์„ ํ•ด์š”. ์œ„์ฒ˜๋Ÿผ ๊ฒฝํ—˜์น˜ 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.");

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }

ย  ย  });

}
๋กœ ์ˆ˜์ •ํ–‡์Šต๋‹ˆ๋‹ค