scriptable object๋ก ์ ๋์ ๋ฅ๋ ฅ์น๋ฅผ ๊ด๋ฆฌํ๊ณ ์์๋๋ฐ
์ฒด๋ ฅ์ด ๊น์ด๊ฑฐ๋ ๋๋ฒํ๋ก ๋ฐฉ์ด๋ ฅ์ด ๊น์ด๋๋ฑ ์ ๋์ ๋ฅ๋ ฅ์น๊ฐ ๋ฐ๋๋ฉด SO์ ๊ฐ๋ ๋ฐ๋๋๋ผ
Instatntiate๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ฉด ์ฃผ์์ฐธ์กฐ๊ฐ ์๋๋ค๋ ๊ธ์ ๋ณด๊ณ ย ์ผ๋จ ๊ทธ๋ ๊ฒํจ.
๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ๋์ ๋ง๋๋ค๊ณ Destroy๋ถ๋ฌ์ ํ๊ดดํ๋๊ฒ ์ ์ง ์ฐ์ฐํด์ ์๋ ์ต์ ํํ ์ ์๋ ๊ณ์ ์ฐพ์๋ด
๊ทธ๋ค๋ก ๊ณ์ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์์๋ดค๋๋ฐ ์ด๊ฒ ์ ๋ฌธ์ฉ์ด๊ฐ ์๋๋ผ?
์ฃผ์๋ฅผ ์ฐธ์กฐํด์ค๋๊ฑธ ์์๋ณต์ฌ๋ผ ํ๊ณ
์์ ์๋ก์ด ๊ฐ์ ์ ์ฅํ๋๊ฑธ ๊น์๋ณต์ฌ๋ผ ํ๋ค๋ค
์ด๊ฒ ๊ทธ ์์
๊ทธ๋์ ์ด๊ฑธ ์ ์ฉํด์ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ๋ง๋ค์ด๋ดค๋๋ฐ
์ผ๋จ ์ด ๋ฐฉ๋ฒ์ผ๋ก ํ๋ฉด ๊น์๋ณต์ฌ๋ผ ์ ์ฉ์ ์๋จ.
๊ทผ๋ฐ ConvertAll ๊ณผ์ ์์ new๋ฅผ ์ฌ์ฉํ๋๊น ์ด๊ฑธ ์์ง์ฐ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋์ ์๊ธฐ๋๊ฑฐ ์๋์ผ?
์์ฝ
1. ScriptableObject ๋ฐ์ดํฐ ๋ฐ์์ฌ๋ Instatiate์์ฐ๊ณ new์ฐ๋ฉด ์ง์ญ๋ณ์๋๊น ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ๋ฆฌ๋๋?
2. ConvertAll๋ก ๋ณต์ฌํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์ ์์๊ฒจ?
3. Dictionary๋ convertAllํจ์๊ฐ ์๋๋ฐ ๊น์๋ณต์ฌ ์ด๋ป๊ฒํด?
c#์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์์ด์ ๋์๋ผ๋ ์ฉ์ด๋ฅผ ์ ์ ์ฐ๋ ๊ฑธ๋ก ์๊ณ ์๋๋ฐ, ๊ฐ๋น์ง ์์ฑ์ด๋ผ๊ณ ํ๋๊ฐ ์ํผ... 2. new Item์ผ๋ก ์์ฑํ๊ฒ _items์ ์ฐ๊ฒฐ๋์ด ์์ผ๋๊น ๊ด์ฐฎ์.
1์ ์ ๋ํฐ์์ ๊ฒฝ๊ณ ๋์ธํ ๋ฐ destoryํ๋ ๊ฑฐ๋ ๋ญ ํฌ๊ฒ ์ฐจ์ด๋ ์์๋ฏ? ๊ฑฑ์ ๋๋ฉด ๋งค๋ฒ ๋ณต์ฌํ์ง ๋ง๊ณ ๋ณํ๋ ๊ฐ์ด ๋ค์ด์๋ ๊ฑฐ ํ๋, ์๋ณธ ๋ค์ด์๋ ๊ฑฐ ํ๋ ์ด๋ ๊ฒ ๊ตฌ๋ถํด์ ์ฐ๋ ๊ฒ๋ ๋ฐฉ๋ฒ 3์ Dictionary๋ฅผ ํต์ฑ๋ก ๋ณต์ฌํ ๋งํ ์ผ์ ์ ์์ ๊ฑด๋ฐ, foreach๋ก ๋๋ ค์ ์ง์ ๋ณต์ฌํ๋ฉด ๊ฐ๋จํจ.
์ฝ๊ฐ ๋ฒ์ด๋์ ์ด์ผ๊ธฐํ๋๊ฑด๋ฐ so์๋ ๊ฐ์ด ๋ณํ๋ ๊ฑธ ์ ์ฅํ๋ ์ฅ์๊ฐ ์๋. scriptableObject๋ ํ๋๋์คํฌ์ ๋์๋๋ ๊ฐ๋ ์ด๋ผ ๊ทธ๋ฅ ๊ฐ๋ง ์ ์ฅํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๋์๋๋ ์๋ก์ด ํด๋์ค๋ฅผ ์ ์ํ๊ณ scriptableObject๋ก ์ด๊ธฐํ์ํค๋๊ฒ ์ข์๋ณด์
c#์ unsafe ํค์๋ ์ฌ์ฉํด์ ๋ฉ๋ชจ๋ฆฌ ์ง์ ์กฐ์ํ๋๊ฒ ์๋ ์ด์ ์ธ๋ชจ์๋ ์ฐธ์กฐ๋ง ์๋ฌ๋ ค์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์์
๊ฐ๋น์ง ์ปฌ๋ ํฐ ์ฐพ์๋ณด์ธ์ฉ ์ธ๋ชจ์๋ ์ฐธ์กฐ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค
์คํฌ๋ฆฝํฐ๋ธ์ค๋ธ์ ํธ ์๋ํฐ์์๋ง ๊ฐ ์ ์ฅ๋๊ณ ๋น๋ ํ ํ์๋ ๋ณ๊ฒฝ๋๊ฐ ์ ์ฅ ์๋๋๊ฑฐ๋ก ์๊ณ ์์ ๋ํ ์คํฌ๋ฆฝํฐ๋ธ์ค๋ธ์ ํธ๋ฅผ ๋๊ฐ์ฐ๋ ๊ฒ์ฒ๋ผ ์ฐ๋ ค๋ฉด ondeserialize ํจ์๋ฅผ ์ด์ฉํ๋ฉด๋ ๊ฑฐ์ผ
๋ฐ๋ก์์ ์ด๊ฑฐ ๊ธ์จ๋๊ณ ํ์ธํด๋ณด๋ ํจ์๋ช ์ด ํ๋ ค์ ์ถ๊ฐ์ค๋ช ํด๋๋ฆผ icallbackserilizereceiver์ OnAfterDeserialize() OnBeforeSerialize() ์ฐ๋ฉด ๋ ๊ฑฐ์ผ ์ฌ๊ธฐ์ ์ค๋ช ํ๋ฉด ๊ธธ์ด์ง๋๊น ์ ๋ํฐ ๋ํ๋จผํธ ์ฐธ๊ณ ํ๋๊ฒ ์ข์๊ฑฐ์ผ ๋ชจ๋ฅด๋๊ฑฐ ์์ผ๋ฉด ๋ ๋ฌผ์ด๋ด๋ ๋๊ณ