์๋ ํ์ธ์ ํ์ฌ ํ์ค์คํค ๋น์ทํ๊ฒ ๊ฒ์์ ๋ง๋ค๊ณ ์๊ณ
Mirror๋ฅผ ์ด์ฉํด์ ์กฐ๊ธ์ฉ ์๋ฒ๋ฅผ ๋ถ์ฌ๋ณด๊ณ ์์ด์
ํ์ฌ 1:1 ๋ฐฐํ ๊น์ง ๋ง๋ค์๋๋ฐ
'๋ฐฐํ' ์ฌ์ ๋ค์ด๊ฐ๊ธฐ์
'๋ฑ ๋น๋ฉ' ์ฌ์ ๋ง๋ค์ด์ '๋ฑ ๋น๋ฉ' ์ฌ์์ ๋ชฉ๋ก์ ์๋ ์นด๋๋ค์ ๊ณจ๋ผ ๋ฑ์ ์ง๊ณ
๊ทธ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ์ฅํด์ '๋ฐฐํ'์ฌ์ ๊ฐ์ ธ์ค๊ณ ์ถ์ต๋๋ค(๋ฑ ๋น๋ฉ์ฌ์์ ๋คํธ์ํฌ ํต์ ์ ์๋๊ฑธ๋ก ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค ๋ฐฐํ์ฌ์ผ๋ก ๊ฐ์ผ ํต์ ์์)
์ฒ์ ํ ์คํธ์ฉ๋์์
DeckData deckData = ScriptableObject.CreateInstance<DeckData>();
deckData.deck = buildingDeck; //๋ฑ ๋น๋ฉ์ฌ์์ ์ง ๋ฑ ๋ณ์
string path = "Assets/Resources/NewDeckData.asset";
AssetDatabase.CreateAsset(deckData, path);
AssetDatabase.SaveAssets();
์ด๋ฐ์์ผ๋ก AssetDatabase๋ก ์คํฌ๋ฆฝํธ์ค๋ธ์ ํธ๋ก ์ ์ฅํด์ ๋ก๋ํ๋๊ฑด ์ฑ๊ณต์ ํ๋๋ฐ
๋ฉํฐ ํ ์คํธ๋ฅผ ํด๋ณด๋ ค ๋ณด๋ ์๊ณ ๋ณด๋ AssetDatabase๋ ์ ๋ํฐ ์๋ํฐ ์ ์ฉ ํด๋์ค๋ผ์ ๋น๋ํ๋ ค๋๊น ์ค๋ฅ๊ฐ ๋๋๋ผ๊ตฌ์
์ฐธ๊ณ ๋ก DeckData์ ๊ตฌ์กฐ๋ ์ด๋ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์์ CardAndAmount ์คํธ๋ญํธ๋
์ด๋ ๊ฒ ๋๊ฐ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค
ScriptableCard๋ ์นด๋์ ๋ณด์ด๊ณ
int amount๋ ํด๋น ์นด๋๋ฅผ ์ด ๋ช์ฅ ๊ฐ์ง๊ฑด์ง์ ๋ํ ์ ์์ ๋๋ค
์คํฌ๋ฆฝํฐ๋ธ ์นด๋ ํด๋์ค๋
์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ฅผ ์์ํ๋ฉฐ
string, int, enum, struct๋ฆฌ์คํธ, Dictionary..๋ฑ์ด ์์ต๋๋ค(์์ด ์ ํ๋ธ ๊ฐ์ข๋ณด๊ณ ์ผ๋งค๋ก ๊ธ์ด๋ง๋ ๊ฑฐ๋ผ Dictionary์ ์ ํํ ์ญํ ์ ์์ง ์ ํ์ ๋ชปํ์ต๋๋ค)
์๋ฌดํผ ์ด๋ฐ๊ตฌ์กฐ์ธ๋ฐ..(์ฌ์ง์ด ์ข ์์์ ์ฃ์กํฉ๋๋ค..)
๋ฑ ๋น๋ฉ์ฌ์์ ์ง ๋ฑ์ ์ ๋ณด์ธ DeckData๋ฅผ ์ด๋ป๊ฒ ์ ์ฅํด์ ์ ๋ฌํ ๊น ๊ณ ๋ฏผํ๋ค๊ฐ ๊ฒ์ํ๋ PlayerPrefs๋ฅผ ๋ง์ด๋ค ์ถ์ฒํด์ ์๋๋ฅผ ํด๋ณด์์ผ๋
playerprefs ArgumentException: Cannot deserialize JSON to new instances of type 'DeckData' ์ค๋ฅ๊ฐ ๋ฉ๋๋ค ์ฑgptํํ
๋ ๋ฌผ์ด๋ด์ ์ฝ๋ ์ฒดํฌํด๋ดค๋๋ฐ..์๋๋ค์..;
ํด๋น ์ค๋ช
์ฒ๋ผ DeckDataManagerํด๋์ค ์คํฌ๋ฆฝํธ๋ ๋ง๋ค์ด์ฃผ์๊ณ
(GPT์ค๋ช
์์ Startํจ์์ ๊ตฌํ์ ํด๋์์ง๋ง ์ ๋ ์ ์ ํ ์์น์ ํด๋น ์ฝ๋๋ฅผ ์จ๋ )
์ด๋ ๊ฒ ํ๋๋ฐ playerprefs ArgumentException: Cannot deserialize JSON to new instances of type 'DeckData' ๋ฌธ์ ๋๋ฌธ์
์ฌ์ด ๋์ด๊ฐ์ ๋ถ๋ฌ์์ง๋์๊ฐ ํฐ์ง๋๋ฐ ์์ธ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค..
๋์ถฉ ๊ทธ๋ฆผ์ผ๋ก ์์ฝํ๋ฉด ์ด๋ฐ ๊ตฌ์กฐ๋ฅผ..์ํ๋๋ฐ.. ๋ฐ์ดํฐ ์ ๋ฌ์ด ์๋์ ๊ณ ๋ฏผ์ค์
๋๋ค..ใ
์๋๋ฉด ๊ตณ์ด PlayerPrefs๋ฅผ ์ฐ์ง์๊ณ ์ข ๋ ๊ฐ๋จํ๊ณ ์ฌ์ด๋ฐฉ๋ฒ์ด ์์๊น์? ๋๋ฌด ์ฌ๊ธฐ์ ๋งค๋ชฐ๋์ด ๊ฐ๋ ๊ธฐ๋ถ์ด๋ผ..๋ค๋ฅธ๋ฐฉ๋ฒ์ด ์์๊น ์ถ๋ค์
AssetDatabase๊ฐ ์ ๋ํฐ ์๋ํฐ ์ธ์์๋ ์๋ํ๋ฉด ์ข์์ํ ๋ฐ..์ฉ..์์ฝ๋ค์..
๋ฑ ์ ๋ณด๋ฅผ ์ง๋ ฌํ ๊ฐ๋ฅํ ํ์ ์ผ๋ก ๋ณํํด์ ์ ์ฅํ ๋ค์ ๋ถ๋ฌ์ฌ ๋๋ ๊ทธ๊ฑธ ๋ค์ ์๋ ํ์ ์ผ๋ก ํ์ฑํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ํด์ผ์ง ์๋ฅผ ๋ค์ด์ ์ ์ฅํ ๋๋ ์นด๋ id๋ ์ฅ์ ์ ๋ณด๋ฅผ ์ ์ฅํด๋๋ค๊ฐ ๊ทธ๊ฑธ๋ก ์๋ ํ์ ์ผ๋ก ํ์ฑํด์ฃผ๋์ง
์ง๋ ฌํ ๊ฐ๋ฅํ ํ์ ์ ์ ์๋ฅผ ์ ํ์ ์ ๋ชปํ๋๋ฐ ๋์ถฉ string int float๋ฑ์ ๊ฐ์ผ๋ก ๋ณํํ ์์๋ ์๋ฃํ์ด๋ผ ๋ณด๋ฉด๋ ๊น์? ๊ทธ๋ผ ์ ๊ธฐ์ ์๋ชป๋ ๋ถ๋ถ์ DeckData์์ CardandAmount์ค ScriptableCard card ์ด ๋ณ์๋๋ฌธ์ ์ง๋ ฌํ๊ฐ ๋ชป๋๋๊ฑฐ์์? ๊ทธ๋์ ์ง๋ ฌํ(?)ํ ์์๋ cardID(string)์ amount(int)์ด๋ฐ ํ์์ผ๋ก ๊ฐ๊ณ ์๊ฒ ํ๋ผ๋ ๊ฑฐ๊ตฌ์?..์ง๋ฌธ์ด ๊ผฌ๋ฆฌ์ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ์ด์ ์ฃ์กํฉ๋๋ค..์ ์๋๋์ง ์ดํดํ๊ณ ์ถ์ด์..
scriptableCard ์๋ serializable ๋ถ์ฌ์ผ๋์ง ์๋
cardAbility ํด๋์ค๋ ํฌํจํด์ ๋ฐ๋ก๋ฐ๋ก ์ง๋ ฌํํด์ ๋๋์ง ํ์ธ์ ํด์ผ์ง ์ปค์คํ ํด๋์ค๊ฐ ํ๋์ด ์๋๋ฐ
์..serializable ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ถ์ฌ์ค์ผ ํ๋๊ฑด๊ฐ์? ํนํ ์ปค์คํ ํด๋์ค๋ถ๋ถ์์? ์ง๋ ฌํ ๊ฐ๋ ์ ๋ํด์ ์ข ๋ ๊ฒ์ํด๋ด์ผ๊ฒ ๋ค์.. ์ง๊ธ ์ด๊ฑฐ ๊ณ ๋ฏผํ๋๋ผ ๋ฐค์์ ์ด์ ์๋ ค๊ณ ์ ๊น ๋์์..์ด๋ฐ ์๊ณ ์ผ์ด๋์ ์ดํธ๋ฆฌ๋ทฐํธ ๋ถ์ฌ๋ณด๊ณ ๋ค์ ์๋ํด๋ณด๊ฒ ์ต๋๋ค ๋ง์ ๊ฐ์ฌํฉ๋๋ค..ใ
์ ๋ ์ง ํ์ค์คํค ์นดํผ ์ฐ์ต์ค์ธ๋ฐ ๋น์ทํด๋ณด์ด๋ค์ ๋์ฝํ์๋ฉด ๊ต๋ฅํ์ค?
์ ๋ํฐ ์ด๋ณด์ธ๋ฐ ๊ฐ ์ฐฎ๋์ฌ? ์ ์ด๊ฑฐํ๋ฉด์ ์ ๋ํฐ ์ฒ์ ๋ง์ ธ๋ด์..