1~50๊น์ง ๋๋ค ํ๋ฆฌํน์ผ๋ก ์์ฑ๋ ๋ฒํธ๋ค์ ์๋๋ก ๋จ์ด์ง๊ฒ ํ๊ณ ,
๊ทธ๊ฒ ์๋์ ์์ฌ์์๋ ์ ํ ๋ฒํผ์ ๋ฃ์ด์ ํ๊ธฐ๊ฒ ํ๋ ค๊ณ ๊ตฌํ์ค์ด๊ฑฐ๋ ?
ํ๊ธด ๋ฒํธ๋ ๊ทธ๋ฅ ์ฐฉ์ถ๋๊ฒ ํ๋ ค๊ตฌ..
์ ํ๋ฒํผ์ onclick์ ํ๋ฆฌํน์ ์ถ๊ฐํ๊ณ jump ํจ์๋ฅผ ๋ฃ์ด๋ดค๊ฑฐ๋ ..?
์ด๋ ๊ฒ ํ๋๊น ๋ฒํผ์ ๋๋ฅด๋ฉด Scene์ ์ค๋ธ์ ํธ๊ฐ ์๋ Prefab์ํ์ ์ค๋ธ์ ํธ๋๋ฌธ์ ์คํ์ด ์๋๋ค..
๋ฒํผ์ด ์คํํ๋ ๋์?์ Prefab๋ง๊ณ Scene์ ์ค๋ธ์ ํธ๋ก ์ง์ ํ๊ณ ์ถ์๋ฐ ๊ทธ๊ฑด Prefab์ํ์์๋ ์๋๋๊ฑฐ๊ฐ์ต๋๋ค.
๊ทธ๋ผ ์๋ง ์ด Prefab์ด ์์ฑ๋ ๋๋ง๋ค Start? Awake? ๋จ๊ณ์ ์ง์ OnClickListener๋ฅผ ์ถ๊ฐํด์ ์ํ๋ ๊ธฐ๋ฅ์ ์คํํด์ผํ ๊ฑฐ๊ฐ์๋ฐ
์ด๋ป๊ฒ ํด์ผํ๋...
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๋ฒํธ๋ผ๊ธฐ ๋ณด๋ค๋ ์ผ์ข ์ ๋ฝ๊ธฐ ์ดํ์ ๊ตฌํ์ค์ด์์. ํ๋ฆฌํน์ ๋ถ์ ์คํฌ๋ฆฝํธ์ ๋ฒํธ๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ฆฌํน ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์๊ณ , ๊ทธ๊ฑธ ์ฐ์ ์ถ๊ฐ์์ผ๋จ์ด์. ๋๋ค์ผ๋ก ์์ฑ๋๋ ๋ฒํธ๊ฐ 1~50 ์ค์ 20๊ฐ ์ ๋์ด๊ณ , ์๋๋ก ๋จ์ด์ง ๋ฒํธ ์ค์ ๋ด๊ฐ ๋ฒํผ์ ๋๋ฌ์ ์๋ก ํ๊ธฐ๊ฒ ํ๊ณ ์ถ์๊ฒ ๋ชฉ์ ์ด์์. ๋ฒํผ UI๋ฅผ ๋ฃ๊ณ , ์จ ํด๋ฆญ ์ด๋ฒคํธ์ ํ๋ฆฌํน์ ์ฐ๋ํ๋๋ ๋น์ฐํ ์คํจ... AddListener๋ก ํ๋ผ๋ ๋ง์์ธ๊ฐ์?
์ฐ์ ์๋ ๋๊ธ๋๋ก ๋ฆฌ์คํธ์ ๋ด์์ ธ ์๋๊ฑธ ํด๋ณด๋ ์ค์ด์์. ๋ช ์๊ฐ ๊ฑธ๋ฆฌ๊ฒ ์ง๋ง ๋์ ํด๋ด์ผ์ฃ ํํ ๋ต๊ธ ๊ฐ์ฌํด์. ์ฑ๊ณต์ฌ๋ถ ๋๊ธ ๋ฌ๊ฒ์ ๊ฐ์ฌํฉ๋๋ค.
๋ด์๊ฐ์ ์ด๊ธ์ XY๋ฌธ์ ์ธ๊ฒ ๊ฐ์ง๋ง ์ผ๋จ ๋ต๋ณ์ ํ์๋ฉด, GameObject.Find("์ด๋ฆ");๋ก ์ฌ ํ์ด๋ผํค์ ์๋ ์ค๋ธ์ ํธ๋ฅผ ์ด๋ฆ์ผ๋ก ์ฐพ์์ ์์.
๋ ๋ชจ๋ฅด๋ฉด ๋ต๋ณ์ํ๋๊ฒ ์ข๊ฒ๋ค
๋ด ๋ต๋ณ์ ๋ฌธ์ ์์/
์ฌ ํ์ด๋ผํค์ ์๋ ์ค๋ธ์ ํธ๋ ์ด๋ฏธ ํ๊ทธ๋ฅผ ๋ฌ์๋๋๋ฐ... ๋ด ๋ง์ ํ๋ฆฌํน ์ํ์์ ๋จ์ด์ง ๋ฒํธ๊ฐ, Scene ์๋์ ์์ฌ์์๋ ์ด Scene์ ์ค๋ธ์ ํธ์ ์ ํ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ถ๋ค๋ ๋ง์.... ์ผ๋จ ๋ต๊ธ ๋ฌ์์ค๊ฑด ๊ณ ๋ง์ด๋ฐ, ๋๊ฐ ๋งํ ๋ต๋ณํ๊ณ ๋ด๊ฐ ์ง๋ฌธํ๋๊ฑฐ ํ๊ณ ๋ ์ ์ด์ ์๊ด์ด ์๋ค..
์ซ์๊ฐ ์ค๋ณต๋์ง ์๋๋ค๋ฉด ์์ฑํ ๋ ์ค๋ธ์ ํธ๋ค์ ์ด๋ฆ์ ๋ค ์์ ์ ์ซ์๋ก ํ๊ณ , ๋ฐ์์๋ ์ซ์๋ค์ ๋ฆฌ์คํธ์์ ํ๋ ๊บผ์์ string์ผ๋ก ๋ณ๊ฒฝํ๊ณ Find๋ก ์ฐพ์์ ํ๋๊ฑด ์๋จ?
๋น์ฐํ ํด๋ดค์. ๋น์ฐํ ์๋จ. ๊ทธ๋ฆฌ๊ณ ๋จ์ ์ซ์๋ง์ด ์๋๋ผ, ๋น๊ตฌ๊ณต(?) ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด ๋จ๊ธฐ ๋๋ฌธ์ string์ด ์์ฉ์ด ์์
Prefab์ผ๋ก ๋ถํฐ ๋ฒํธ๋ฅผ ์์ฑํ ๋๋ง๋ค List์ ๋ด์๋๊ณ ๋ฒํผ ๋๋ฅด๋ฉด๊ทธ ๋ฆฌ์คํธ์์ ๋๋คํ๊ฒ ์์ฑ๋ ์ซ์ ๊ฒ์์ค๋ธ์ ํธ ํ๋๋ฅผ ๊ณจ๋ผ์ ํ๊ธด๋ค์ ๋ฆฌ์คํธ์์ ์ ๊ฑฐ
๋ค ๋ง์์. List์ ๋ด์๋ 1~50๊น์ง ์ ํ๋ฆฌํน ๋ฒํธ ์ค์, 20๊ฐ๊ฐ ์๋๋ก ๋จ์ด์ง ํ์ ์์ด๋ฉด, ์ ๊ฐ ๋ฒํผ์ ํด๋ฆญํ์๋ ํ๊ฒจ์ง๋ค. ๊ทธ๋ฐ๋ฐ ๋ฒํผ UI์ onClick์ ํ๋ฆฌํน์ ์ฐ๋์ํค๋ ๋น์ฐํ ์๋๊ณ ... ํ๋ฆฌํน ์คํฌ๋ฆฝํธ์ vector3 * up ๊ฐ์ ์ ํ ํจ์๋ฅผ ๋ฃ์ด๋ ์๋๊ณ .. ๋๋ฒ๊ทธ๋ก ๋ณด๋ฉด ์๋์ ํ๋๋ฐ ๋์์ ์์ฌ์ง ๋ฒํธ๋ค์ด ํ๊ฒจ์ง์ง๊ฐ ์๋ค์...
ui๋ฅผ ํ๋ฆฌํน์ด๋ ์ฐ๋์ํค๋๊ฒ ์๋๋ผ, list์ ๋ด๊ฒจ์๋ ๊ฒ์์ค๋ธ์ ํธ๋ ์ฐ๋์์ผ์ผํจ
์ค๋ธ์ ํธ ํ๋ง์ ์์ผ๋์ NumberGroup์ ๋ง๋ค์ด๋๊ณ , ๊ฒ์์ ์คํํ๋ฉด NumberClone์ด ์๋์ ์ซ ์์ฑ๋ผ์. ๊ทธ๋ผ NumberGroup์ ๋ฒํผUI์ ์ฐ๋์ํค๊ณ NumberGroup์ ์ ํ ํจ์๊ฐ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐ ์ํจ๋ค์์ ํด์ผ ํ๋ค๋ ๋ง์ธ๊ฐ์? ์ง๋ฌธ์ด ๋ง์์ ์ฃ์กํด์
NumberGroup.cs
๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ๋์์ผ๋ ๋ง์ ํด์ฃผ์ ๋๋ก ์ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋ต๋ณ ๊ฐ์ฌํด์.
NumberGroup.cs ๋ด์์ ๋ฐ๋ณตํด์ Instiate(numberPrefab, transform) ํธ์ถ ํ ๋๋ง๋ค ๊ทธ๋ ์์ฑ๋ go ๋ฅผ ๋ฆฌ์คํธ์ ๋ด์ ๋จ์๊บผ์๋, ๊ทธ๋ผ ๋ฒํผ ๋๋ ์๋ ๋ฆฌ์คํธ์์ ํ๊ฐ ์ฐพ์๋ค๊ฐ go.GetComponent().DoJump(); ์ด๋ฐ์์ผ๋ก ..์ซ์ํ๋ฆฌํน์ Jump ์คํฌ๋ฆฝํธ๊ฐ ๋ค์ด์์ด์ผ๊ฒ์ง
GameObject instantNumberObj = Instantiate(NumberPrefab, NumberGroup); instantNumber.name = "Number " + NumberPool.Count; Number instantNumber = instantNumberObj.GetComponent(); instantNumber.manager = this; NumberPool.Add(instantNumber); ์ด๋ ๊ฒ ํ๊ณ ๊ฒ์์ ์คํํ๋ฉด Number 1, 2, 3, 4...20 ๊น์ง NumberGroup์ ์์ฑ์ด ๋ฉ๋๋ค. ๋ฌธ์ ๋ ๊ฒ์์ ์คํ ์ํจ ํ์, ๋ฒํผ onclick ์๋ค๊ฐ ๋ฃ์ผ๋ฉด ๋์์ด ์ ๋๋๋ฐ
๊ฒ์ ์คํ ์ ์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐ์ ์์ผ ๋๊ณ , ๊ฒ์์ด ์คํ ๋์ด๋ ๋ฐ๋ก ์งํ ๋ ์ ์๊ฒ ํด๋ณด๋ ค๋ ์ ์๋๋ค์... ๋ง์ํด์ฃผ์ ๋ฆฌ์คํธ๋ก ์ ๋ฆฌํด ๋์ ๊ฒ์ for(int index = 0; index < NumberPool.Count; index++) { poolCursor = (poolCursor + 1) % NumberPool.Count; ๋ก ์ ํด๋จ๋๋ฐ ์คํ ์ ์ ์ฐ๊ฒฐ์ด ์๋ผ์ ์ด๋ ต๋ค์ ....
๊ฒ์์ ์คํ ์ํค๋ฉด ๊ทธ๋ฃน์ ์๋ ๋ฒํธ๊ฐ ํ์ด์ด๋ผํค ์ฐฝ์ Number Group๋ฐ์ child component๋ก ํ์์ผ๋ก ๋จ๊ณ , ์ด ํ์์ผ๋ก ๋ฌ ๋ถ๋ถ์ ํ๋ํ๋ ์ ํ๋ฒํผ์ ์ฐ๊ฒฐํ๋ ์๋์ ํฉ๋๋ค. ๋ฌธ์ ๋ ์คํ ์ํค๊ธฐ ์ ์ ์ฐ๊ฒฐํด์ ์คํ ํ์๋ ๋์์์ผ๋ณด๊ณ ์ถ์๋ฐ ์ด ๋ถ๋ถ์ด ์ข ๋งํ๋ค์..
์์ค์ฝ๋๊ฐ ๋ค ์งค๋ ค๋ณด์ด๋๋ฐ ๋์ถฉ ์์๋ค์์๊บผ์ผ ์ด๋ ค์ด๊ฑฐ์๋์ผ ํ๋ด
๋ค ๋ง์ํด์ฃผ์ ๋๋ก ํ ๋ฒ ํด๋ณด๋ ์ค์ ๋๋ค. ๋๊ธ ์ ๋ง ๊ฐ์ฌํด์. ์ฑ๊ณต์ฌ๋ถ ๋จ๊ฒจ๋๋ฆฌ๊ฒ ์ต๋๋ค! ์ข์ ์ฃผ๋ง ๋ณด๋ด์ธ์:)