์ค๋ ์ถ๊ฐํ ์ธ์ด๋ธ๋ก๋ ๊ธฐ๋ฅ์ ๋ํด ์๊ธฐํด๋ณด๋ คํจ
์ผ๋จ ๊ฒ์ํ๋ค ์ค๊ฐ์ ๊บผ์ง๋ฉด ๋นก์น๊ธฐ๋ํ๊ณ ๋ถ๊ธฐ์ ๋ง๋ค๋ฉด ๋ถ๊ธฐ์ ๋ง๋ค์ด์ ์ํ๋ ์นด๋ ๋์ฌ๋๊น์ง ๋ค์ ์์ํ ์๋ ์์ผ๋ ์๋์ ์ฅ ๋ฐฉ์์ ์ฑ์ฉํจ.
์ ์ฒด์ ์ธ ํ๋ฆ์(ํ๋ก์ฐ ์ฐจํธ ๋ง๋ค๊ธฐ ๊ท์ฐฎ์์ ๋ง๋กํจ)
๊ฒ์์ ์์ํ๋ค -> SaveData.xml ํ์ผ์ด ์์ผ๋ฉด ์๋ก ์์, ์์ผ๋ฉด Load -> ํฌ์ปค๋ก ๊ธฐ๋ฌผ ๋ฝ์ผ๋ฉด ์๋ ์ ์ฅ
1. ์ธ์ด๋ธ ์ฝ๋๋ฅผ ์ดํด๋ณด์
xml ํ์ฑ์ด ๋ค์ด๊ฐ๋ ํ๋ก์ ํธ๋ ๋ง์ด ํด๋ดค์ง๋ง... C#์ผ๋ก ํผ์ํ๋๊ฑด ์ฒ์์ด๊ธฐ ๋๋ฌธ์ ๋ด ๋ง๋๋ก ์งฐ๋ค.
์ด์ฐจํผ ์ธ์ด๋ธ ๋ก๋์ ๋ค์ด๊ฐ๋ ๋ฐ์ดํฐ๊ฐ ์ง๊ธ์ ๋ช๊ฐ ์๊ธฐ๋ ํ๊ณ ์ธ์ด๋ธ ํ์ผ์ ์ต๋ 1๊ฐ๊ธฐย ๋๋ฌธ์ ๋์ถฉ ๋๋ ค๋ฐ์์
root๋ ธ๋๋ฅผ ์์ฑํด์ฃผ๊ณ root์ child๋ก GameInfo์ TowerInfo๋ฅผ ๋ฃ์ด์ค๋ค
GameInfo๋ ๊ณจ๋, ํ๋ ์ด์ด ์ฒด๋ ฅ, ํ์ฌ ๋ผ์ด๋ ์ ๋ณด๋ฅผ ๋ด์ ๊ฒ์ด๊ณ
TowerInfo๋ ํ์์ ์์น์ ์ด๋ค ๊ธฐ๋ฌผ์ธ์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ๊ฒ์ด๋ค
---------------------------------------------------------------------------------------------------------------------------------------------
์ถ๊ฐ๋ ์์๋ ธ๋๋ก๋
PokerInfo(ํฌ์ปค๊ฒ์ ๋์ค์ ์ ์ฅ์ํค๋ฉด ๋ถ๋ฌ์ค๊ธฐ ์ํด ์ฌ์ฉ)
MissionInfo(๊ณง ์ถ๊ฐ๋ ๋ฏธ์ ํด๋ฆฌ์ด ์ฌ๋ถ ํ์ธ)
BonusInfo(ํน์ ์ถ๊ฐ ์์ ์ธ๋ฐ ํน์ ์ฌ๋ถ ํ์ธ)
๋ฑ์ด ์์
์์งํ ์ปจํ ์ธ ๋ ๊ฒ์ ์ ์ฒด์ ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์ธ์ด๋ธ ๋ก๋์๋ ๋ณ๊ฐ
---------------------------------------------------------------------------------------------------------------------------------------------
๊ฐ์คํ๊ณ towerInfo๋ towerPair๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค์ด์ position๊ณผ index๋ฅผ ์ ์ฅํ๋๋ฐ
myTower๋ผ๋ย element๋ฅผ ๋ง๋ค์ด์ย ๋ ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ์ ์ผ๋จย element๋ฅผ towerPosition towerIndex ๋๊ฐ๋ก ๋๋์ด ์ ์ฅํ๋ค. ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ์ ๋ฌด์ํ๊ฒ towerPosition1 towerIndex1 ์ด๋ฐ์์ผ๋ก ์ ์ฅํ๋๋ฐ ํน์ xmlํ์ฑ ์ํ๋ ์ฌ๋ ์์ผ๋ฉด ๊ฟํ ์ข ์๋ ค์ค๋ผ. ๋ง๋กํ๋ฉด ์ ๋ชป์์๋จน์ด์ ๋งํฌ ์ฃผ๋ฉด ๋ ์ข๊ณ
2. Load ์ฝ๋๋ฅผ ์ดํด๋ณด์
Save๋ฅผ ํ์ผ๋ Load๋ ๊ฐ๊ฟ์ด๊ฒ ๋
ธ ์ถ์์ง๋ง Save๋ฅผ ์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ์์ Load๊ธฐ๋ฅ์ ์ค๋ช
ํด๋์ ๊ธ์ ๋น๊ณต๊ฐ๋ก ๋๋ ค๋์ ๋ค๋ฅธ ๊ธ์ด๋ ๋น๊ตํ๋ฉด์ ์ ๋จน์๋ค. ๊ณต์ ๋ฌธ์๋ฅผ ๋ค์ ธ๋ณผ๊น ์๊ฐํ๋๋ฐ ๊ท์ฐฎ์์ ์ผ๋จ ๋ค๋ฅธ ์คํ์์ค ์ฐธ๊ณ ํจ
load๋ ๋ณ๊ฑฐ์๋ค. ํด๋นํ๋ ๋ ธ๋ ์ฐพ์์ ToInt32๋ก convertํด์ฃผ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ string์ int๋ก ๋ฐ๊ฟ์ฃผ๊ณ GameManager์ ์๋ Loadํจ์๋ก ๋ฐ๋ก๋ฐ๋ก callํด์ค๋ค.
3. GameManger ์ฝ๋
๊ฒฐ๊ตญ ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ๋๊ฑด GM์ด๊ธฐ ๋๋ฌธ์ GM ์ฝ๋์์ ์์
์ด ์ด๋ฃจ์ด์ง๋ค
PlayerGold์ HP CurrentWave๋ get set๋ง ํ๋ฉด ์์์ ์ ์ฉ๋๊ธฐ์ get set์ผ๋ก save load๋ฅผ ํด์ฃผ์๋ค.
Load๋ฅผ ์ํ ๊ณผ์ ๋ ๋๋ฆ ๊ท์ฐฎ์๋๋ฐ ์ผ๋จ ๋ฌด์ง์ฑ์ผ๋ก ํ์ผ์ ๊น์ ๋๋ถ์ ํ์ผ position์ ๋ฐ๋ฅธ index๊ฐ ํ๋ณด๋์ง ์์์๋ค
๋ฐ์์ ์ค๋ช ํ ์์ ์ด์ง๋ง tile manager๋ฅผ ๋ง๋ค์ด index๋ก ๊ด๋ฆฌํ๊ฒ ๋์์.
์ด์จ๋ ํ์ผ index์ ํ์ index ๋ชจ๋ ์๊ณ ์์ผ๋ ์ ์ฅ๋ ์์น์ ์ ์ฅ๋ ํ์ ๋ฒํธ๋ฅผ ์ด์ฉํด ์คํฐ๋ง ํด์ฃผ๋ฉด ๋๋ค.
์์ ์ฝ๋๋ฅผ ์ค๋ช ํ์ง ์์์ ์ค๋ช ํ๊ธฐ ์ด๋ ต๊ธดํ๋ฐ ๊ธฐ์กด์ ์ฐ๋ SpawnTowerํจ์๋ ์นด๋ ๋๋ก์ฐ ๋ฒํผ๊ณผ ์ฒดํฌ๋ฅผ ๋๋ฌ์ผ๋ง ์๋์ด ๋๊ธฐ ๋๋ฌธ์ ๊ทธ ๋ถ๋ถ์ ์กฐ๊ฑด๋ฌธ๋ง ๋บ SpawnLoadTowerํจ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด ์ค์ผํ๋ค. ์ด์ฐจํผ ๊ธฐ๋ฅ์ ๋๊ฐ์์ ํ์ค๋ง ๋นผ๊ณ ๋ง๋ค์๋๋ฐ ๋์ค์ ๊ฒน์น๋ ๋ถ๋ถ์ ๋ค์ ํจ์ํ ํด์ผํ ๋ฏ
ํ์ผ ๋งค๋์ ์ฝ๋ ์ผ๋ถ์ธ๋ฐ, tile์ ๋ณด๋ Serializefield๋ก ์ง๋ ฌํํด์ ๋งค๋์ ๊ฐ์ฒด์ ๋ฐ์๋ฒ๋ ธ๊ณ ํ์ ๋ง๋ค๋๋ง๋ค AddTowerInfo ํจ์๋ฅผ ์ด์ฉํด์ towerPair ๋ฆฌ์คํธ์ ์ ์ฅํด์ค๋ค. Save๊ธฐ๋ฅ ์ฌ์ฉ์์ GetTowerInfoํจ์๋ก ๋ฆฌ์คํธ๋ฅผ ๋ฐ์๊ฐ๋ค.
Save Load ์ฝ๋๋ ์ฝ๊ณ ๊ฐ๋จํ์ง๋ง Xmlํ์ฑ์ด๋ผ๋๊ฒ ํญ์ ์ธ์ด๊ฐ ๋ฐ๋๋๋ง๋ค ์ฌ์ฉ๋ฒ ์ฐพ๋๊ฒ ๊ท์ฐฎ์์ ๊ณ์ ๋ฏธ๋ฃจ๋ค๊ฐ ์ด์ ๊ฒจ์ฐ ํ๋ค... ํ์ฑ ๋ฐ์ดํฐ ์ฒด๊ณํํ๋ ๋ฐฉ๋ฒ์ ์ข ๋ฐฐ์์ผ ํ ๋ฏ.
๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ๋ ์์์ผ๋ก ๋ง๋ฌด๋ฆฌํ๊ฒ ์ ์ค๋๋ ๋ด์ค์ ๊ณ ๋ง๋ค.
๊ฐ๋ฐ์ผ์ง ๋ค์๋ณด๊ธฐ
#1
https://gall.dcinside.com/m/game_dev/116598
[์ ์์ค๊ฒ์์ฆ] ํฝ์ ํฌ์ปค ๋ํ์ค ๊ฐ๋ฐ์ผ์ง #1 - ๊ฒ์ ๊ฐ์2022๋ 7์๋ถํฐ ๊ฐ๋ฐ ์์ํ ๋ชจ๋ฐ์ผ ๊ฒ์์ธ๋ฐ ์จ์ผ์ง ์จ์ผ์ง ํ๋ค๊ฐ ๊ณ์ ๋ฏธ๋ฃจ๊ณ ์ฌํด ์๋๋ค์ค์ ๊ฐ๋ฐ ์์ํ๊ฑด 9์๋ถํฐ๋ผ ์ฒ์ ์ฌ๋ฆฌ๋๊ฑฐ์น๊ณ ์์ด ๋ง์ผ๋ ์ดํดํด์ฃผ์ญ์ผ์ฐ์ ํฝํฌ๋๋ ์คํ ์ ์ฆ๋งต "ํฌ ํฌ์ปค ๋ํ์คgall.dcinside.com#2
https://gall.dcinside.com/m/game_dev/116609
[์ ์์ค๊ฒ์์ฆ] ํฝํฌ๋ ๊ฐ๋ฐ์ผ์ง #2 ์ ๋๋ฉ์ด์ ๋ชจ๋ ๊ฐ๋ฐ์๋ 2๋ก ํต์ฌ ํ์ ๊ธฐ๋ฌผ๋ค ์ค๋ช ๊ฒธ ์ ๋๋ฉ์ด์ ๋ณด์ฌ์ค๋ผํ๋๋ฐ ์ ๋๋ฉ์ด์ ๋ชจ๋ ๋ง๋ ๊ฑฐ๋ถํฐ ์จ๋ณด๋ คํจ์ ๋๋ฉ์ดํฐ ์์ฐ๊ณ ์คํฌ๋ฆฝํธ๋ก ๊ตฌํํ์๋ ๋ฅ๋ ฅ์๋ถ๋ค์ ์ด๋ฏธ ๋ง๊ฒ ์ง๋ง, ๋๋ฅผ ๋น๋กฏํ ์ด๋ณด ๊ฐ๋ฐ์๋ค์ ์ด๋ฐ๊ฑธ ์ ๋ชจ๋ฅผ ์ ์๊ธฐgall.dcinside.com
์์ฟ ์์ฟ - dc App