์ธํฐ๋ท ์ฐพ์๋ดค๋๋ฐ ๋ฆฌํ๋ ์ ?์ ๋ญ์ง ์ฝ์ด๋ ๋๋ฌด์ด๋ ต๊ณ
map์ผ๋ก ํ๋๋ฐฉ๋ฒ์ ์๋๋๊ฑฐ๊ฐ์์ ์ง๋ฌธ์ฌ๋ฆผ
์ผ๋จ ์ฝ๋
์ผ๋จ ์ํฉ์
์ค๋ธ์ ํธ ํ๋ง ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํด์ผ ํ๋ ์ถ๊ธฐ๋ ํ๋ฐ ์ธํฐ๋ท ๋ค์ฐพ์ผ๋ฉด์ ์ต๋ํ ์ฐ๊ธฐ์ฝ๊ฒ ๋ง๋ ๊ฑฐ๋ผ
objectPool.getObject(์ค๋ธ์ ํธ๋ฅผ ๊ฐ์ง๊ณ ์ฌ ํ, ์ค๋ธ์ ํธ ์ ๋ณด) ์ด๋ ๊ฒ ๋์์
์ง๊ธ ํ์ํ๊ฑด ์ด๋ง๋ค ์ด์์ ๋ค๋ฅด๊ฒ ํด์ผ๋๊ณ ์ค๋ธ์ ํธ ํ๋ง์ ๋๋ฆด๊บผ๋ผ์ ์ ๊ธฐ ์ฐํ๊ฒ ์น ํด๋ bullet1ย ์ bullet2, bullet3 ์ด๋ฐ์์ผ๋ก ๋์ ์ฐ๊ณ ์ถ์
ํ์ด์ฌ์ธ๋ locals()['~~'] ์ด๋ฐ๊ฑธ๋ก ํ๊ฑฐ๊ฐ์๋ฐ C#์ ์๋ฌด๋ฆฌ ์ฐพ์๋ ๋ชจ๋ฅด๊ฒ ์
๋ฌด์ง์ฑ์ผ๋กย string.Format์ผ๋ก ํ๋ ค๋๊น string.Format("ObjectPool.instance.bullet{0}",i.ToString()) ์ด๋ฌ๋ฉด ์ดํด๋ฅผ ๋ชปํ๊ณ
ObjectPool.instance.string.Format์ด๋ฐ๊ตฌ๋ก ์ฐ๋๊ฑด ๋ง๋์๋๊ณ ๋ญ ๋ชจ๋ฅด๊ฒ ์
๋์์ค์ ใ กใ ใ ใ ใ ใ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
ใ ใ ใ ใ ์ฐพ์๋ณด๊ฒ ์
์ธํฐํ์ด์ค ์ฐ์ ใ ใ
ใ ใ ใ ใ ์ฐพ์๋ณด๊ฒ ์
์ด๋ฏธ ๋ฆฌํ๋ ์ ์ด๋ผ๋ ๋ต์ ๊ฐ์ ธ์๋๋ฐ ์ด๋ ค์์ ๋ชปํ๋ค ํ๋ฉด... ๋ต ์๋๊ฑฐ์ง๋ญ.. ๋ฆฌํ๋ ์ ์์ ๋ฅผ ์ข ์ฐพ์๋ณด๋๊ฐ ์์ ์ข ๋ ์ ๋๋ก ๊ณต๋ถํด๋ด
์ฐพ์๋ณด๋๊น ๊ทธ๊ฒ ๋ง๋๊ฑฐ๊ฐ์ ใ กใ ๊ทธ๋ฅ ๋ฆฌํ๋ ์ ์ ๊ณต๋ถํ๋ฌ ๊ฐ๊ฒ ์
๋ฆฌํ๋ ์ ์จ์ผํ ์ํฉ์ด ์๋๋ฐ ์ด๊ฑด
๊ธ์ด์ง ์ซ ๋์ ์๋ฌด๋ ์๋ณผ์ค์์๋๋ฐ ์ฌ๊ธฐ ๊ธ์ ์๋๋ฐ ๊ทธ๋ฅ ์ค๋ธ์ ํธํ๋ง ์คํฌ๋ฆฝํธ์์ ์ด์ฐ ์์ ํ๊ณ ์ถ๊ฐํด๊ฐ์ง๊ณ ์ธ๋งํ๊ฒ ๋ง๋ค์ด์ ํด๊ฒฐ์ค์! ใณใณ