๋์ ๊ฒ์์ ๋ง๋ค์ด ๋ณด๊ธฐ๋ก ํ๋ค[1]
๋์ ๊ฒ์์ ๋ง๋ค์ด ๋ณด๊ธฐ๋ก ํ๋ค[2]
์ผ๋จ ์ด๋ฒ์๋ ๊ฐ๋จํ๊ฒ ๋งต ์๋ํฐ UI๋ง ๋ง๋ค์ด ๋ดค์.
ํ์ง๋ง ๋ ๊ทธ๋ ๋ฏ ์ธ๊ฐ์ด ํ๋ ์ผ์๋ ์์์น ๋ชปํ ์๋ฌ๊ฐ ์๊ธฐ๊ฒ ๋ง๋ จ...ใ ใ ใ
Hierarchy์ ๋ณด์ด๋ WallCreate๋ FloorCreate๋ UI-Toggle์ธ๋ฐ
ํ ๊ธ ํ๋๋ง ์ถ๊ฐํด๋ ์๋์ผ๋ก ์บ๋ฒ์ค๋ ์ด๋ฒคํธ์์คํ ์ด ์ถ๊ฐ๋๋๋ผ๊ณ .
์ด์จ๋ ๋ฒฝ์ ๊ทธ๋ฆฌ๋ฉด์ ๋์์ ๋ฐ๋ฅ์ ๊ทธ๋ฆด ์๋ ์์ผ๋ ๋ ํ ๊ธ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด์
ํ๋๋ฅผ ์ผ๋ฉด ํ๋๋ ๊บผ์ง๊ฒ ํด ์ค์ผ๊ฒ ์ง. Toggle Group ์ ๋งจ ์์ ์๋ ๋ฒฝ ์์ฑ์ฉ ํ ๊ธ์๋ง ๋ง๋ค์ด ์ฃผ๊ณ ,
๋ฒฝ ์์ฑ ํ ๊ธ์ด๋ ๋ฐ๋ฅ ์์ฑ ํ ๊ธ์ ๊ทธ๋ฃน ์ค์ ์ ๋ฒฝ ์์ฑ์ฉ ํ ๊ธ์ ๋ฐฉ๊ธย ๋ง๋ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด์ฃผ๋ฉด ๋๋ ๋ฏ.
์ด์จ๋ ํ์ผ ๊ทธ๋ฆฌ๋ ์ฝ๋์์ ์กด๋ ๋ฟ์ง๋ฟ์ง ์๋๊ฒ
๋งจ ์ฒ์์ ์ ์ฝ๋ ๊ทธ๋๋ก ๋ฃ๊ณ ๋๋ ค๋ณด๋๊น Null Ref. ์๋ฌ๊ฐ ๋จ๋๋ผ๊ณ .
์, ์๋ฐ Instantiateํด ์ค์ผ ํ์ง. ์ด๋ฌ๋ฉด์ ์ธ์คํด์คํ ์ํค๋ ค๋๋ฐ
tile์ scriptable object๋ผ์ ์ผ๋ฐ ์ธ์คํด์ค ๋ช ๋ น์ผ๋ก๋ ์ธ์คํด์คํ๊ฐ ์ ๋๋ฐ.
๊ฑฐ๊ธฐ๋ค๊ฐ ์ tileName๋ค์ ์๋ต๋ ํ์ฅ์๋ ".prefab"ํ์ผ์ด ์๋๋ผ ".asset"ํ์ผ์ด๊ณ .
๊ทธ๋์ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ์ ์๋ CreateInstance๋ผ๋ ์ง, ์ค๋ธ์ ํธ๋ก ๋ง๋ค์ด์ ์ธ์คํด์คํ ํ ๋ค์์ ์บ์คํ ์ด๋ผ๋ ์ง...
์ค๋ง ์ง๋์ ๋ค ํด๋ดค๋๋ฐ ๊ฒฐ๊ตญ ์ฐพ์ ๋ฌธ์ ๋ ์กด๋ ์๋ฑํ ๋ฐ์ ํ์ด๋์์ด.
ํ์ผ์ด ์ ์ด์ ๋ฐฐ์ด ํํ๋ก ๋ฐฐ์น๋๋ค ๋ณด๋๊น, ๋ฐฐ์ด์์ ์๋ ํ์ผ์ ์ ๋ฒ์ ๋ง๋ ๋งต ์ฐพ๊ธฐ ์์คํ ์์ ๋ถ๋ฌ์ค๋ ๋ถ๋ถ์ด ๋ฌธ์ ๋๋ผ๊ณ .
๊ทธ๋์ UpdateWall์ ๋ง๋ค์ด์ ์ผ๋จ ํ์ผ์ ๊ทธ๋ฆฐ ๋ค์์๋ ๋ฌด์กฐ๊ฑด UpdateWall์ ํ๋ฒ ์ํํด์ ํ์ผ ๊ณต๊ฐ ์์ ๋น ๋ถ๋ถ์ ๋ฐ๋ฅ์ ์ฑ์๋ฃ๊ธฐ๋ก ํ์ด.
์ด๊ฑฐ ์์ ํ๋ฉด์ ๋ด๊ฐ ๋๋ฒ๊ทธ ์ฐ์ด ๋ณด๊ณ ํ๋ ์๊ฒ๋ ์ฌ์ค์
ํ์ผ๋งต์์ ์๋ ๊ฐ๊ฐ์ ํ์ผ์ "๋๊ฐ์" ํ์ผ์ด๋ผ๋ฉด ๋์ผ Object์์ ref๋ง ๊ฐ์ ธ์์ ๊ทธ๋ ค์ฃผ๋๋ผ.
๋ชจ์์ด ๊ฐ์ ํ์ผ์ ์ฌ๋ฌ ์์น์ ์ฐ์ด ๋๊ณ ๊ฐ ํ์ผ์ ๋ํด์ ๋ก๊ทธ ๋์ ๋ณด๋๊น InstanceID๊ฐ ๋๊ฐ์ด ์ฐํ๋๋ผ๊ณ .
์ด๋์ ํ์ผ๋งต์ ๊ฐ๊ณ ํ์ผ ๊ทธ๋ ค๋์๊ฑฐ ๋ ๋๋ง ํ ๋ 1 draw call์ผ๋ก ๋ค ๊ทธ๋ฆฐ๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ๋ณธ ๊ฑฐ ๊ฐ์๋ฐ ๊ทธ ๋ง์ด ์ ๋น์ฑ์ด ์๋ ๋ฏ.
UpdateWall์ ์ํํ๋ ์์ ์ Toggle์ ํฌ๊ณ ๋๋.ย
์ผ๋จ ํ์ผ์ ์ถ๊ฐํ ๋ค์์ ์ ๋ฐ์ดํธ ํด์ผ ํ์ง, ๊ทธ ์ ์ ์ ๋ฐ์ดํธ ํ ํ์๋ ์์์?
๋ง์ง๋ง์ผ๋ก ์นด๋ฉ๋ผ ์์ง์ด๋ ์ฝ๋ ์๋๋ฐ ๊ฐ์
(๋ด๊ฐ ์๋ฑํ๊ฒ๋ ์ฌ๊ธฐ์ ๋ง์ฐ์ค ์์ง์์ ์ฒดํฌํ๊ฒ ๋ง๋ค์ด ๋จ๋ค ๋ณด๋ ์ด๋ฆฌ ๊ฐ์ผ ํจ)
ํด๋ฆญ๋ ์ํ์์ ์์ง์ด๋ฉด ์ปค์ ์์น๋ฅผ ๋ฐ๋ผ์ ๋ฒฝ์ด๋ ๋ฐ๋ฅ ํ์ผ์ ๊ทธ๋ ค์ฃผ๋๋ก ํ๋ฉด ๋.
ํด๋ฆญํ๊ณ ๊ฐ์ ์์น์ ๊ณ์ ๋ง์ฐ์ค๊ฐ ์์นํ๋ฉด ํ ์์น์ ๊ณ์ ํ์ผ์ ๊ทธ๋ฆฌ๋ ๊ฒ ๊ฐ์ง๋ง,ย
๊ฒฐ๊ตญ ๊ฐ์ object id ref๋ฅผ ๊ต์ฒด๊ต์ฒด ํด ์ฃผ๋ ๊ฑฐ๋๊น ๋ฉ๋ชจ๋ฆฌ์์ผ๋ก ๋ฌธ์ ๋ ์์.
์ ๊ธฐ ์ธ๋ชจ์์ด ๋ณด์ด๋ RayCast๊ฐ ๋ค์ด๊ฐ ์ด์ ๋
ํ ๊ธ ์ผ๊ณ ๋ ๋ ํ ๊ธ ๋ฐ์ ์๋ ๋ถ๋ถ์๋ ํ์ผ์ ๊ทธ๋ฆฌ๋๋ผ๊ณ .
๊ทธ๋์ RayCast์ด์ ์ผ๋จ UI์ ์ถฉ๋ํ๋ฉด ํ์ผ์ ์ ๊ทธ๋ฆฌ๋๋ก ํด ๋จ์ด.
๊ทธ๊ฒ ๊ฐ๋ฅํ ์ด์ ๊ฐ Canvas์๋ Graphic Raycaster๊ฐ ๋ถ์ด ์๊ณ , Grid์๋ ์ ๋ถ์ด ์์ด์ ๊ฐ๋ฅํ๋ค... ๋ผ๊ณ ์ดํดํ๋๋ฐ ๋ง๋์ง๋ ์ ๋ชฐ๊ฒ ์.
์ด์ ๋ค์์๋ ์ฌ์ฌ ๊ทธ๋ ค๋์ ๋งต ์ ์ฅํ๋๊ฑฐ ๋ง๋ค์ด์ผ๊ฒ ๋ค.
์ด์~
๋ฅ์ถ์ผ
๊ฐ์ถ!