ArgumentException: Could not cast or convert from System.String to UnityEngine.Vector3Int.ย
์ด๋ ๊ฒ ๋จ๋๊ฑฐ ๊ฒ์ํด๋ณด๋๊น ๋ณํ์ด ํ๋ฒ๋ ๋์ ๊ทธ๋ ๋ค๋๋ฐ ์์ธ์ด ๋ญ์?
ย ย ย ย gameData = new GameData();
ย ย ย ย gameData.MapData = new Dictionary<Vector3Int, WordInHex>();
ย ย ย ย gameData.MapData.Add(new Vector3Int(1, 1, 1), new WordInHex());
ย ย ย ย gameData.MapData.Add(new Vector3Int(2, 1, 1), new WordInHex());
ย ย ย ย gameData.MapData.Add(new Vector3Int(3, 1, 1), new WordInHex());
ย ย ย ย string str;
ย ย ย ย str = JsonConvert.SerializeObject(gameData);
ย ย ย ย gameData = JsonConvert.DeserializeObject<GameData>(str); <= ์ฌ๊ธฐ์ ๋ฌธ์ ์๊น
์์ dictionary๋ jsonํ๊ฐ ๋๋? ์๋ง ์ ๊ฑฐ ๋๋ฌธ์ผ๋ฏ?
์์ธ์ด ๋ญ์ง ์ฐพ์๋ณด๋๊น ๋ฑ dictionary ํค๊ฐ์ vector3int ๋์ ๋ด๊ฑฐ ๋ฃ์ผ๋ฉด ์ค๋ฅ ์๋ฟ์ ์ธํฐ๋ท์์ JsonSerializerSettings์ด๊ฑฐ ์จ์ ํด๊ฒฐํ๋ฉด ๋๋ค๋๋ฐ ์๋๋๋ผ
๊ธ๋ฉด v3int๋๋ฌธ์ธ๊ฐ.. ๋๋ v2int ๊ฐ serialization ์๋์ ๋ฐ๋ก ํด๋์ค ๋ง๋ค์ด์ ์ผ๋ ๊ธฐ์ต์ด ๋๋๊ฑฐ ๊ฐ๊ธฐ๋ ํ๊ณ
์๋ฌด๋๋ Dictionary์์ vector๋ฅผ ๋ฌธ์์ด๋ก ์ธ์ํ๋ ํ์ ์ ๋ ๊ฒ ๋๋๊ฑฐ ๊ฐ์๋ฐ
์ฑ๊ณต ์์ ์คํ ์ด์ ์๋ ์ ๋ํฐ 3d์ฉ json.net ์ ์ถ๊ฐํด์ ๋ณํํจ