์ธ์ด๋ธ ๋ก๋. ์ง๋ ฌํ ์ญ์ง๋ ฌํ. ํด๋ ํด๋ ๋ชจ๋ฅด๊ฒ ๋ค.
์ง๋ ๊ฒ์ ๋ง๋ค๋๋ Json์ผ๋ก ์ธ์ด๋ธ ๋ก๋๋ฅผ ๊ตฌํํ๋๋ฐ,
๊ตฌํํ๋ฉด์ ์ ์ผ ์ดํด๊ฐ ์ ๋์๋๊ฒ ์ญ์ง๋ ฌํ ๋ถ๋ถ์ด์์.
Actor{
int Age;
string Name;
}
Sword{
int Damage;
}
์ด๋ฐ๊ฑฐ์ผ ์ธ์ด๋ธ ๋ก๋ ํ๊ธฐ ์ฝ์ง. ์์ ๋ฐ์ดํฐ๊ฐ ์ ๋ถ ์ง๋ ฌํ ๋๋ ์์๋ฐ์ดํฐ๋๊น.
๊ทผ๋ฐ ๋ค์์ ์ด๋ป๊ฒ ํจ?
Actor{
int Age;
string Name;
Weapon Sword; <- ๊ฐ์ฒด์ฐธ์กฐ! (์์ ๋ณด์ด๋ ค๊ณ ์ด๊ฑฐ์ง๋ก ์ง ๊ตฌ์กฐ๋๊น ์ด๊ฒ ์ ์ฌ๊น๋ ๋ฌป์ง๋ง์์ค)
}
์ด๋ฐ ๊ตฌ์กฐ๊ฐ ๋๋ฉด, Actor๋ฅผ ์ง๋ ฌํ/์ญ์ง๋ ฌํ ํ๊ณ ๋๋ฉด Actor.Weapon == null ์ด ๋๋ฒ๋ฆฌ์์.
๊ทธ๋ผ Actor.Init(Weapon weapon) ๋ฑ์ ์ถ๊ฐ๋ก ์์ฑํด์ Weapon ๋ง๋ค์ด์ ์ผ์ผ์ด ๋ฌ์์ค์ผ ํจ?
...
var actor = new Actor (Serializer.Deserial(SaveData.Actor));
var weapon = new Weapon (Serializer.Deserial(SaveData.Weapon));
Actor.Init(weapon); <- ์ด ๋ถ๋ถ์ด ํ๋์ฝ๋ฉ (์ ๋ฒ ๊ฒ ๋ง๋ค๋๋ ์ด๋ ๊ฒ ํ์;;)
ECS์ ๊ฒฝ์ฐ์๋ ์ ์ฅํ ๋ ๊ฐ ๊ฐ์ฒด์ ID ๋ฅผ int ๊ฐ์ผ๋ก ๋ฐ๋๊ณ ID๋ง ์ ์ฅํด์ ์ธ์ด๋ธ ๋ก๋ ํ๋ ๋ฐฉ๋ฒ์ ์จ๋ณธ์ ์ ์์.
๊ทผ๋ฐ ๊ต์ฅํ ๋ฐ๋ณด๊ฐ๋๋ผ. ์์ฑ๋ ๊ฐ์ฒด๋ค์ ๋ค ๊บผ๋ด๋๊ณ ID๋ก ์๋ก ์ด์ด์ฃผ๊ธฐ ์ค๋จ๊ธฐ ๋์ด ํด์ค์ผ ํ๋.
๊ทธ๋ ๋ง๋ ์ธ์ด๋ธ๋ก๋ : https://github.com/raveneer/EntitasSaveLoader
์ง๋ฌธ์์ฝ
๊ฐ์ฒด๊ฐ์ ์ฐธ์กฐ๊น์ง ์ธ์ด๋ธ ๋ก๋ํ ์ ์๋ ์๋ฆฌ์ผ/๋์๋ฆฌ์ผ ์๋ฃจ์ ์ด ์กด์ฌํด?
ํ๋์ฝ๋ฉ ํ ์ ์์ง๋ง ํ๊ณ ์ถ์ง ์์ ๋ฐ์ค์ ...
๋๊ฐ์ ๊ฒฝ์ฐ๋ ๋ณดํต CSV์ ๊ฐ ์ ์ฅํด์ ํด๋น๊ฐ์ ๊ทธ๋ฅ ํต์งธ๋ก ๋ค๊ณ ์์ ์ด๊ธฐํ ํด๋ฒ๋ฆฌ๋ํธ์ธ๋ฐ ์ดํ ๊ณ ์๋ค
๋๋ ์ ๋ํฐ c# ์๋ก ์์ ๊ฐ์ ์ธ์ด๋ฅผ ๋ง๋ค์์. ์ ๋ฐ์์ผ๋ก ์ ๋ณด ์ ์ฅํด์ผ ํ๋ ์ผ ์์ผ๋ฉด ๋ด๊ฐ ์ง ๊ฐ์์ธ์ด๋ก ์ ๋๋ฐ, ์ด ๊ฐ์์ธ์ด๋ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ํ๋์ ๊ฐ์ฒด ๋ฆฌ์คํธ ์์ ๋ค์ด์๊ณ , ์๋ก์ ์ฐธ์กฐ๋ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ผ๋ก ์ด๋ฃจ์ด ์ง๋๊ฒ ์๋๋ผ ๊ฐ์ฒด๋ฆฌ์คํธ์ index๋ก ์ด๋ฃจ์ด์ง. ๊ทธ๋์ ์ ์ฅํ ๋ ๊ทธ๋ฅ int๊ฐ ์ ์ฅํ๋ฏ์ด ์ ์ฅํ๋ฉด ๋จ.
์ ์ญ์ ID ๊ฐ์ ์ฐ๋๊ฒ ๋ต์ธ๊ฐ...
์๋ฅผ ๋ค์ด, Sword = katana ๋ผ๋ฉด, ๊ฐ์ ์ธํฐํ๋ฆฌํฐ ๋ด์์๋ Sword = 35(katana ์ ๊ฐ์ฒด๋ฆฌ์คํธ ์์ index) ; ๋ก ์นํ๋จ. katana.name ์ด๋ฐ์์ผ๋ก ๊ฐ์ฒด์ ์ ๋ณด์ ์ ๊ทผํ ๋๋ katana๋ ์ฃผ์๊ฐ์ ๋ด๊ณ ์๋ ํฌ์ธํฐ๊ฐ ์๋๋ผ ๊ฐ์ฒด๋ฆฌ์คํธ ์์์์ ์ธ๋ฑ์ค๋ฅผ ๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ list[35].name ์ด๋ฐ์์ผ๋ก ์ฐธ์กฐ๋ฅผ ํ๊ฒ ๋จ.
์ ์ฅํ ๋ ๊ฐ์ฒด ๋ฆฌ์คํธ๋ง ์น ์ ์ฅํ๋ฉด ๋๋ ์ฝ๊ฒ ๋ค.
์ด๋ฐ์์ผ๋ก ํ๋ฉด ์ค๋จ๊ธฐ ์ํ๊ณ ๋ฐํ์ ๊ธฐ์ค์ผ๋ก ์๋์ผ๋ก ์ฐธ์กฐ๊ฐ ๋์์
๊ทธ๋ ์งใ ใ
๊ตฌ์กฐ ํ๋ฒ ์๊ฐํด๋ด์ผ๊ฒ ๋ค. ๊ณ ๋ง์!!!
๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฒด์ฐธ์กฐ๋ ์ ์ฅํ ๋ id๊ฐ์ผ๋ก ๋ฐ๊ฟ๋จ๋ค๊ฐ, ๋ถ๋ฌ์ฌ ๋ id๋ฅผ ์ฐพ์์ ๋ฃ์ด์ค.
๊ทธ๋ฐ ๋น์ ์ ์ํ ์ด์ง์ธ์ด๋ธ
์ด์ง ์ธ์ด๋ธ๊ฐ ๊ฐ์ฒด ์ฐธ์กฐ๋ ์ ์ฅํด์ค?