์ ๋ฒ ์๊ฐ์๋ ๊ทธ๋ฆผ์ ์ด์ฉํด์ ํ๋ก๊ทธ๋จ์ ์ข๋ ์ฝ๊ฒ ์ค๋ช
ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค์ด.
์ด๋ฒ ์๊ฐ์๋ ์๋ ์ ์ฅ์ ๋ํด ๋ค๋ฃจ๋ ค๊ณ ํ๋๋ฐ, ๋ณด๋ค ์ ํํ ๊ตฌํ์ ์ํด ๋จผ์ ์ค๋ธ์ ํธ ๊ด๋ฆฌ๋ฅผย ๋ง๋ ํ์ ๊ทธ ๋ถ๋ถ์ ๋ง๋๋ ๊ฒ ๋ ๋์ ๊ฒ ๊ฐ์์ ์ค๋์ ๊ฒ์์ค๋ธ์ ํธ ๊ด๋ฆฌ์ ๋ํด์ ์ฐ์ ์ค๋ช ํ ๊ป.
๊ฒ์์ค๋ธ์ ํธ ๊ด๋ฆฌ๋ย ์ญ์ ์ ๋ฒ์ ์์๋ดค๋ ๋ฐฉ์์ธ ๋ชจ๋ ๋ฐฉ์์ ์ด์ฉํด์ ๊ตฌํํ์ด. ๋ค๋ง ์ด๊ฑด ๋ค๋ฅธ ํด๋์ค์์ ์ฐ๊ฒฐ์ด ๊ทธ๋ฆฌ ํฐ ๋น์ค์ ์ฐจ์งํ์ง ์๊ธฐ ๋๋ฌธ์ UMesh๋ณด๋จ ๋จ์ํ๊ฒ ๋ง๋ค ์ ์์์ด.
์ด์ ๋ถํฐ ํด๋์ค ๋ด์์ ๊ฒ์์ค๋ธ์ ํธ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ UBody์ ๋ํด ์ค๋ช ํ ๊ป.
UBody๋ ํด๋์ค ๋ด์ ๊ฒ์์ค๋ธ์ ํธ๋ค์ ์ด๊ดํ๋ ํด๋์ค์ผ.
์ฝ๊ฒ ๋งํ์๋ฉด, ๊ธฐ์กด์ ์ ๋ํฐ๊ฐ ๊ฒ์์ค๋ธ์ ํธ ์์ MonoBehavior ํํ์ ํด๋์ค๊ฐ ์๋ ํํ์๋ค๋ฉด, ๋ฐ๋๋ก ์ด ๊ฐ๋ ์ ํด๋์ค ์์ ๊ฒ์์ค๋ธ์ ํธ๊ฐ ์๋ ํํ์ผ.
์ด๋ ๊ฒ ํจ์ผ๋ก์จ ํด๋์ค๊ฐ ๊ฒ์์ค๋ธ์ ํธ์ ์ข ์๋์ง ์์ ์ ์๊ณ ย ํ ํด๋์ค๊ฐ ์ฌ๋ฌ ๊ฒ์์ค๋ธ์ ํธ๋ค์ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ์ญ์ ํ๋ ๋ฐ๋ ์ฉ์ดํด๊ฒ ๋ผ.
์๋๋ UMesh๋ฅผ ์ด์ฉํด์ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ด์ผ.
์ฌ๊ธฐ์ prefeb๋ enum์ผ๋ก ๊ฒ์์ค๋ธ์ ํธ์ ์ ํ์ ์ ๋ฆฌํด๋ ๊ฑฐ์ผ.
๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์ป์ ๋, Master ํด๋์ค์์ ์์ ์ uBody์๊ฒ ํน์ prefeb ์ ํ์ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ฌ๋ผ๊ณ ์์ฒญํด.
๊ทธ๋ฌ๋ฉด uBody๋ย ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ ์ค๋ธ์ ํธ ํ์์ ํด๋นํ๋ prefeb์ ์ค๋ธ์ ํธ๋ฅผ ๊ฐ์ ธ์์ ๋ฐํํ๊ณ ,ย ๊ฒ์์ค๋ธ์ ํธ์ prefeb์ย ๋์ ๋๋ฆฌ ํํ๋ก ์ ์ฅํด.
์ฌ๊ธฐ์ uBody๊ฐย ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์ ์ ํ๋ ์ด์ ๋, ์ค๋ธ์ ํธ ํ์ ๋ฐ๋ฉํ ๋๋ ๋ฐ๋ฉํ gameObject์ prefeb์ ์์์ผ ํ๊ธฐ ๋๋ฌธ์ด์ผ.
Master๋ prefeb์ ๋ชจ๋ฅด๊ณ , Master์ย gameObject๋ Pool์์ ๋์๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ gameObject๋ก prefeb์ย ์ญ์ถ์ ํ๋ ๊ฑด ๋ถ๊ฐ๋ฅํด.
๊ทธ๋์ gameObject๋ฅผ ๋ฐ์์ฌ ๋ ์์ ์ด ๋ญ ๋ฐ์์๋์ง๋ฅผ ๊ธฐ์ตํ๊ธฐ ์ํด uBody์์ ๋ฐ๋ก ์ ์ฅํ๋ ๊ฑฐ์ผ.
[๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ฐ์์ Prefeb - GameObject ๋์
๋๋ฆฌ์ ์ ์ฅํ๋ค.]
์๋ ๊ทธ๋ฆผ์ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ฐ๋ฉํ๋ ๊ณผ์ ์ด์ผ.
๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ฐํํ ๋ ์์์ ๋งํ uBody์ย GameObject(Key) - Prefeb(Value) ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋์ ๋๋ฆฌ๋ฅผ ํตํด ์ด ๊ฒ์์ค๋ธ์ ํธ์ prefeb์ย ์์๋ด๊ณ , ๊ทธ prefeb์ ํตํด ๊ฒ์์ค๋ธ์ ํธ๋ฅผ pool์ ๋ฐํํด.
์ฌ์ค ์ฌ๊ธฐ๊น์ง๋ ๊ตณ์ด uBody๋ฅผ ๋ฐ๋ก ๋ง๋ค์ง ์์๋ ์ค๋ธ์ ํธ ํ ํด๋์ค์์ ๊ตฌํ ๊ฐ๋ฅํ ๋ถ๋ถ์ด์ผ.
๊ทธ๋ผ์๋ ๊ตณ์ด uBody๋ฅผ ๋ง๋ค์ด ์ค๋ธ์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ์ด์ ๋, ํ ๋ง์คํฐ ํด๋์ค์ ์ค๋ธ์ ํธ๋ฅผ ํ๋ฒ์ ๊ด๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ด์ผ.
๋ง์ฝ Master๊ฐ ๊ทธ๋ฅ ์ญ์ ๋๋ค๋ฉด, Master์ ์๋ GameObject๋ค์ ์ฐธ์กฐ๋ฅผ ์๊ณ ์ธ๊ฒ์์์ ์ญ์ ๋์ง ์๊ฒ ๋ ๊ฑฐ์ผ.
์ด ํ์์ ๋ง๊ธฐ ์ํด, ์๋๋ Master๊ฐ Dispose๋ ๋ ์์ ์๋ GameObject๋ค์ ์ผ์ผํย Destroyํ์ด.
ํ์ง๋ง ํด๋์ค๊ฐ ๋ณต์กํด์ง๊ฒ ๋๋ฉด ๊ฐ๋ฐ์๊ฐ ๋์ง๋ ๋ถ๋ถ์ด ์๊ธธ ์ ์๊ณ , ์ค๋ธ์ ํธ๋ฅผ ์ง์ฐ๋ ์ฝ๋๋ ๊ธธ์ด์ง๊ฒ ๋ผ.
์ด๋ ์์ ์ ๋ชจ๋ GameObject๋ฅผ ๋ชจ์๋ ๋ฆฌ์คํธ๊ฐ ์๋ค๋ฉด, ๊ทธ๋ฅ ๊ทธ ๋ฆฌ์คํธ์ ์๋ GameObject๋ค์ Destroyํ๋ฉด ๋๊ฒ ์ง.
Master์ ํ๊ดด๋ ๊ฑฐ๋๊น ์ด์ฐจํผ Master์ ์๋ GameObject๋ค์ ์ฐธ์กฐ๋ ์ ๊ฒฝ์ธ ํ์ ์๊ณ .
์ด๋ ๊ฒ UMesh ํด๋์ค์์ pools์ ์๋ GameObject๋ค์ ์ ๋ถ ํ์ ๋ฐํํ๋ ํจ์๋ฅผ ๋ง๋ค์ด ๋๋ฉด
Master๋ ์ญ์ ๋ ๋ ๊ทธ๋ฅ uBody์ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ๋ง์ผ๋ก๋ ์์ ์ GameObject๋ค์ ๋ชจ๋ ํ์ ๋ฐํํ ์ ์์ด!
์ค๋์ย GameObject๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค์ด.
๋ค์ ์๊ฐ์๋ ์ง๊ธ๊น์ง ํ ๊ฒ๋ค์ ์ด์ฉํด์ ๋๋ก๋ฅผ ๋ง๋ค์ด ๋ณผ๊ป. ๋ด์ ๋ด!
๋๊ธ 0