Brackeys ์ธ๋ฒคํ ๋ฆฌ ๊ฐ์๋ฅผ ๋ณด๊ณ ๋ฐ๋ผ ๋ง๋ค์๋๋ฐ
์ด๋ถ์ ๋ค๋ค ์ ๊ฑฐ๋ผ ์๊ฐํ๊ณ , ์ํผ ์ ๋ํฐ์์ง์ผ๋ก ๊ฒ์ ๋ง๋๋ ๋์ค์ ๊ฒ์์ ๊ฝ์ธ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ๊ตฌํ์ค์ด์์ด
๊ทผ๋ฐ ์ ์ธ๋ฒคํ ๋ฆฌ ๊ฐ์ข๋ ์ธ์ด๋ธ ๋ก๋ ์์คํ ํํ ๋ฆฌ์ผ์ ์ํ๋๋ผ๊ณ .
ScriptableObject๋ก ๋ง๋ ์์ดํ ์์ฒด๋ ์ ์ฅ์ด ๋ผ. ์๋๋ฉด ScriptableObject ์์ฒด๊ฐ ์ ์ฅ์ ์ง์ํ๋๊น.
๋ค๋ง ์ด๋ ๊ฒ ๋ง๋ ์์ดํ ์ ์ถ์ํด๋์ค์์ ํ๋์ฉ ๋ง๋ค์ด์ ์ ์ฅ๋ ๊ฐ๋ณ ์ค๋ธ์ ํธ๊ณ ํด๋์ค ์์ฒด๋ ์ถ์์ ์ด๋ผ์ ์ง๋ ฌํ๊ฐ ์๋๋๋ผ๊ณ .
์ง๋ ฌํ๋ฅผ ํด์ผ ๋ณดํต ์ ์ฅ์ ํ์์?
๊ทธ๋ ๋ค๊ณ PlayerPrefs๊ฐ SetClass๊ฐ ์๋๊ฒ๋ ์๋๊ณ List<Item>์ ์ถ๊ฐ๋ ์์ดํ ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด ๋์ ํ ์๊ฐ์ด ์๋.
์๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณค
ScriptableObject๋ ๊ฐ์ด ๊ณ ์ ํ๋๊น ID๋ฅผ ๋ฌ๊ณ , Slot1์ PlayerPrefs.SetInt("Slot1", Item[0].ID) ์ด๋ฐ์์ผ๋ก ์ธ๋ฒคํ ๋ฆฌ ์ฌ๋กฏ์ ๋ชจ๋ ๊ฐ์ if๋ฌธ ๋๋ ค์ ๋ก๋ํ ๋ย
0์ด๋ฉด ID๊ฐ 0์ธ ์์ดํ ์ถ๊ฐ, 1์ด๋ฉด 1์ธ ์์ดํ ์ถ๊ฐ ~~~ ์ญ๊ฐ์ 26์ด๋ฉด ID๊ฐ 26์ธ ์์ดํ ์ถ๊ฐ. ๋ค์ ์ฌ๋กฏ ๋๊ฐ์ด ์งํ. ์ด๋ด๊ฑฐ ๋ฐ์ ์๊ฐ์๋๋๋ผ.
๊ฒฐ๋ก ์ ์ถ์ํด๋์ค๋ก ๋ง๋ค์ด์ง ์์ดํ ๋ค์ ์ด๋ป๊ฒ ์ ์ฅํด์ผํ ๊น?
List<T> (T๊ฐ ์ถ์ํด๋์ค)๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์๋ฉด ๋ ๊ฑฐ ๊ฐ๊ฑฐ๋ . ๋๋ฌด ์ด๋ ต๋ค..
ํด๋์ค์์ Attribute [System.Serialization] ํด๋ ์๋ผ?
์์คํ .์๋ฆฌ์ผ๋ผ์ด์ ๋ธ ์ผ๊ฑธ
๊ทธ๋ฌ๋ค
๋๋ ๋น์ทํ๊ฑธ๋ก ๊ณ ๋ฏผํ์๋๋ฐ ISerializationCallbackReceiver ์ด๊ฑธ๋ก ์ปค์คํ ์ง๋ ฌํ ์ญ์ง๋ ฌํ ํจ์ ๋ง๋ค์ด์ค์ ์์. ์ด๊ฑธ๋ก ์ ์ฅํ ๋ List<Item>์ ๊ณ ์ ๊ฐ ๋ฆฌ์คํธ๋ก ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ๋ ๊ณ ์ ๊ฐ ๋ฆฌ์คํธ์์ List<Item>์ผ๋ก ๋ณํํ๋ ์์ผ๋ก ๋ง๋ค ์ ์์ผ๋ ค๋?
ใ ใ // ๋ฌด์จ ๋งํ๋์ง ์๊ฒ ๋๋ฐ ๋ด๊ฐ ์ด๋ณด์ฌ์ ์ด๋ป๊ฒ ์ ์ด๋๊ฐ์ง ๊ฐ์ด ์์จ๋ค. Item Class์ ๊ณ ์ name, icon, ID๋ฅผ ์ง๋ ฌํ ์ํค๊ณ ์ ์ฅํ ๋ค์ ๋ถ๋ฌ์ฌ ๋ ๊ทธ๊ฒ๋ค์ ๋ค์ Item Class๋ก ๋ฐ๊ฟ์ List<Item>์ ์ง์ด๋ฃ์ผ๋ผ๋๊ฑฐ์ง?
Minn // ์ ๋ํฐ ์ง๋ ฌํ ๊ด๋ จํด์ ์ข ์ฝ์ด๋ดค๋๋ฐ static๊ณผ ์ถ์ํด๋์ค๋ ์ง๋ ฌํ๊ฐ ์๋๋ค๋๋ผ.
ใด ์ ๊ทธ๋ ๊ตฌ๋ง..
๊ตํ์ ์์ดํ ์ ์ถ์ํด๋์ค๊ฐ ์๋ ๊ณ ์ ํด๋์ค์ ๋ฃ์ด ๋ณด๊ดํ์
์๊ตฌ์ฌํญ์ด ๋ญ์ง ๋ชฐ๋ผ์ ์ ํํ ๋ง๋ชปํ๊ฒ๋๋ฐ ๋จ๊ฒ์ด๋ผ๋ ์์ดํ ์ด ์์ผ๋ฉด ๊ทธ ์ ๋ณด๊ฐ ScriptableObject์ ๋ค์ด๊ฐ๊ณ List<Item>์ ๋จ๊ฒ๋ ๋ค์ด๊ฐ๊ณ ์ฌ๊ณผ๋ ๋ค์ด๊ฐ๊ณ ์ด๋ฐ๊ฑฐ์์? ๋จ๊ฒ์ EquipableItem์ด๊ณ ์ฌ๊ณผ๋ EdibleItem ์ด๋ฐ์์ผ๋ก Item ์ถ์ํด๋์ค์์ ์์๋ฐ์๊ฑฐ๊ณ ?
๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด Item ํด๋์ค์ int id๋ฅผ ์ฃผ๊ณ , List<Item>์ ์ง๋ ฌํ ํ ๋ List<int>์๋ค๊ฐ List<Item>์ ์๋ ์์ดํ ์ id๋ฅผ ํ๋ํ๋ ๋ฃ์ด์ฃผ๊ณ , ์ญ์ง๋ ฌํ ํ ๋ List<int>์์ id๊ฐ์ ํด๋นํ๋ ์์ดํ ์ ์ฐพ์์ List<Item>์ ๋ฃ์ด์ฃผ๋ผ๋ ๋ง์ด์์.
์ง๋ ฌํ๋ผ๋๊ฑด ํด๋์ค์ ๋ฐ์ดํฐ ๊ฐ๊ฐ์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ ์ ์ฅํ๋ ๊ณผ์ ์ธ๋ฐ, ์ถ์ ํด๋์ค๋ฅผ ์ง๋ ฌํํ๋ ค๋ฉด ์ด๊ฒ ๋ฌด์จ ํด๋์ค๋ก derived ๋๋์ง ์ ๋ํฐ๊ฐ ๋ชจ๋ฅธ๋ค๋ ๊ฑฐ์ง. ๊ทธ๋์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ผ ํ๋์ง ๋ชจ๋ฅด๋๊ฑฐ๊ณ . ๊ทธ๋ฌ๋ Item๋ฐ์ดํฐ๋ ์ง๋ ฌํํ์ง ๋ง๊ณ , int ๋ฆฌ์คํธ๋ง ์ง๋ ฌํํด์ ์ ์ฅํ๋ค์, ๋ถ๋ฌ์ฌ๋ ๊ทธ๊ฑธ ๊ธฐ๋ฐ์ผ๋ก Item๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ ๋ฃ์ด์ฃผ๋ผ๋ ๋ง์.
ใ ใ // ๋ฌด์จ๋ง์ธ์ง๋ ์ดํดํ์ด. ๊ทธ๋ฐ๋ฐ Itemํด๋์ค์ ID๋ ๊ทธ๋ฅ Int๊ณ , ์ง๋ ฌํ ํ ๋ฆฌ์คํธ๋ List<int>๋ผ์ ๋ฃ์ด์ฃผ๋๊ฒ ์๋๋๊ฑฐ ๊ฐ์ Itemํด๋์ค์ ID๋ List<int>๋ก ์ง์ ํด์ค์ผํด? public int๋ก ์ง์ ํ๊ฑฐ๋
Item ๋ฆฌ์คํธ์ foreach ๋๋ ค์ int ๋ฆฌ์คํธ์ item.id ํ๋์ฉ ์ถ๊ฐํด์ค. ์์ดํ ์ด id๋ฅผ ์ฌ๋ฌ๊ฐ ๊ฐ์ง ํ์๊ฐ ์์๋? id๋ ๋ง ๊ทธ๋๋ก ์๋ณ์ ์ํ ๊ฐ์ด๋๊น
ใ ใ // ID๊ฐ์ ๋ค ์คฌ์ด. ๊ทผ๋ฐ save๊ธฐ๋ฅ ๊ตฌํ์์ ๋ฐ์ด๋๋ฆฌํฌ๋งท, ํ์ผ์คํธ๋ฆผ ์ง์ ํ๊ณ List<int> saveId = items.ID๋ฅผ ๋ฃ์ด์ฃผ๋๋ง ์๋์ผ?
ใ ใ //๊ทธ ๊ณผ์ ์ด int๋ฅผ List<int>๋ก Convert ํ๋ผ๊ณ ์๋ฌ ๋ก๊ทธ ๋ ์ ใ