๊ฒ์ ์์ํ ๋ ๊ฒ์ ํค๋ฐ์ธ๋ฉ์ด๋ ํ๋ฉด ์ค์ ๋ก๋ํ๋๋ฐ
JSON์ ์ธํ ๊ฐ ๋ฃ๋๋ฐ ๊ฒ์ย ์ต์ด 1ํ ์คํ์์๋ ๋ฐ์ดํฐ๊ฐ ์๊ฑฐ๋ ํ๋ฆฐ ๊ฒฝ์ฐ ์์ฑํ๋ ค๊ณ ํด
๊ทผ๋ฐ ํด๋น JSON์ด ์ ํจํ์ง ์ํ๋์ง ์ฒดํฌํ๋๊ฑฐ ์์ง ๋ด๊ฐ ๊ฒ์์ ๋คํด๋ด์ ๋ชจ๋ฅด๊ฒ ๋๋ฐย
์ ํจ์ฑ ๊ฒ์ฌํ๋ ์ธํฐ๋ท ํ์ด์ง๋งย ์ค์ง๊ฒ ๋์ค๊ณ ํ๋ก๊ทธ๋จ ๋ด์์ ํจ์๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ชป์ฐพ๊ฒ ์
Jsonutility์์ ํ๋๊ฑด FromJson์ด๋ ๋๋์ง ์๋๋์ง ์ฒดํฌํ๋๋ผ? ๊ทธ๋์ย ArgumentException ๋ด๋ฑ๊ณ ๋ป์
๊ทธ๋ฅ ์ผ๋จ ์ด jsonํ์ผ์ด ๊ฑ ๋ฐ์ดํฐ๊ฐ ์๋ ๊นจ์ก๋ ๊ฑ ์๋ณํ์ง๋ง๊ณ ย jsonํ์ผ๋ก ํ์ฑ์ด ์๋๋ฉด ๋ง๋ค๊ณ ์ถ์๋ฐ
void LoadGameSetting()
{
try
{
var Jsonsetting =ย Jsonutility.FromJson<GameSetting>(strSetting);
SetSetting(Jsonsetting);
}
catch ย (ArgumentException e)// ๋ง์ฝย ArgumentExceptionย ๋จ๋์ํฉ์ด๋ผ๋ฉด
{
Debug.log("Json is not invailde")
MakeSetting();
}
}
์ด๋ฐ ๊ฒฝ์ฐ ๋ก์ง์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋๋? ๊ฒ์ ๋ก๋์์ try catch๋ฅผ ์์จ๋ด์ ๊ทธ๋ฌ๋๋ฐ ๋ด๊ฐ ๊ดํ ์ฐ์ฐํ๊ฑด๊ฐ
๊ทธ๋ฆฌ๊ณ JSON ์ ํจ์ฑ ์ฒดํฌํ๋ ๋ญ๊ฐ ์ค๋งํธํ ๋ฐฉ๋ฒ์ด ์์๊ฒ๊ฐ์๋ฐ ๋์ ์ ์๋๋ค....
๋ค์ํ๋ฒ ๋งํ์ง๋ง ํํ๋ ์๋์ง๋ง ๊ณ์ ๋์ ๋๋ ๋ฐฉ๋ฒ์ด ์์ด์ ๊ทธ๋ฐ๋ฐ valid ์ฒดํฌํ๋ ๋ฐฉ๋ฒ ์์ผ๋ฉด ์๋ ค์ค๋ ๋ผ!
๊ทธ๊ฑฐ ์์ธ์ฒ๋ฆฌ ์ํด์ค๋ ๊ทธ๋ฅ if (JsonSetting!=null) SetSetting(~~); ์ด๋ ๊ฒ ํด์ค๋ ์๋ฌ๋จ?
ใ ใ ์๋ฌ๋์ ์งํ์ด ์๋จ
jsonutility ์ ๊น ์ฐ๋ค๊ฐ Dictionary๋ ์ง์ ์ํ๋๊ฐ ๊ทธ๋๊ฐ๊ณ ๊ฐ์ํ์ ์ ๋ชจ๋ฅด๊ฒ ๋ค... ๊ทธ๋ฅ newtonsoft json ์ฌ์ฉํด๋ณด๋๊ฑฐ ์ด๋ฐ? ๋นํธ์ธ ์ฐ๋ ค๊ณ jsonutility์ฐ๋ค๊ฐ ๋๋ฌด ๋ถํธํด์ ๋์ด๊ฐ๋๋ฐ ํจ์ฌ ์ฌ์ฉํ๊ธฐ ํธํจ.