ํ์ฌ ๋ฐฉ๋ฒ์ย
์คํฐ ํธ๋์คํผ์ ๋ฐฐ์ด๋ก ๋ฐ์์์ ์ ์ฅ ํ ํ์, ๋ฐฉ์ ๋ค์ด์ค๋ฉด ๋ชฌ์คํฐ๊ฐ ๊ทธ ์์น์ ์ํ์ด ๋จ
์ด๋ ๊ฒํ๋ฉด ๋ฌธ์ ๊ฐ ์ํ์ดํํธ๋ ์ํ์ดํํธ๋ฅผ ์ข์ ์ ์ ์ ๋ชป์จ์ ์ข ์ ๋งคํ๊ณ ์ํ ๋ชจ์ ์ด ์์ด์ ์ด์ํจ
๊ฑด์ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ฐ๋ฅ์ ํ์ ์ง ๊ทธ๋ ค์ง๊ณ , ํ! ์๋ฆฌ๋ ํจ๊ป ์ํ ์ ๋๋ฉ์ด์ ๋์์ ๋ชฌ์คํฐ๊ฐ ๋ฑ์ฅํ๋๋ฐ ๋๋
๋ฐ๋ก ์ํ ์ดํํธ->์ํํ๊ณ ๋ฐ๋ก ๊ณต๊ฒฉ์ด๋ผ ์ข ์ด์ํ๋ฐ
์ด๊ฑธ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๊ฒฐ๊ตญ ์นด๋ฉ๋ผ ๋ฐ์์ ์ ๋ถ ์คํฐ์ ์ฒ๋ฆฌํ๊ฒํด์ผํจ
๊ทธ๋ฌ๋ฉด ๋ฌธ์ ๊ฐ ์นด๋ฉ๋ผ ๋ฐ์์ ์ ๋ถ ์ํํ๊ฒํ๋ฉด ํ๋กํ์ผ๋ฌ ๋๋ ค๋ณด๋๊น ๋ต์ด ์๋ณด์ด๋๋ผ
๊ทธ๋ผ ๋ด์-์ธ์์ ์ก๊ณ
๋ด์ ์์ชฝ์์๋ ์ํ ์ํ๊ฒ(ํ๋ ์ด์ด ์นด๋ฉ๋ผ ๊ฑฐ๋ฆฌ)
๋ด-์ธ์ ์ฌ์ด์์๋ ์คํฐํ๊ฒ
์ธ์ ๋ฐ๊นฅ์ชฝ์์๋ ๋ชฌ์คํฐ๊ฐ ์ฌ๋ผ์ง๊ฒ ํด์ผํ ๊น ์ถ์๋ฐ
์ด๋ฌ๋ฉด ๋ฌธ์ ๋ ๋ชฌ์คํฐ๊ฐ ์ฌ๋ผ์ง๋ฉด ๊ทธ ํผํด์ ์ ๋ฐ์ดํฐ๊น์ง ๋ค ์ฌ๋ผ์งํ ๋ฐย
๋ชฌ์คํฐ ์ค๋ธ์ ํธ ํ์ ๋ง๋ค์ด๋๊ณ ์ฌํ์ฉํ๋์์ผ๋ก ํด์ผํ๋
์นด๋ฉ๋ผ ๋ฐ์์ ์คํฐ์์ผฐ๋ค๊ณ ์นด๋ฉ๋ผ ์์ชฝ์์ ์คํฐ์ํจ๊ฒ๋ณด๋ค ํผํฌ๋จผ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ๋ฌธ์ ์ ์ด์ฐจํผ ๋๊ฐ์ ์๋ฅผ ์คํฐ์ํค๋ ๊ฒ ์๋? ๊ทธ๊ฒ๋ถํฐ ๊ณ ์น๋ ๊ฒ ์ข์ ๋ฏ
Astar๊ฐ ์์ฒญ๋๊ฒ ๋์๊ฐ๋๊น. ์ผ๋จ ๋ชฌ์คํฐ ์คํฐํ๊ณ ๋์ ๋ฌธ์ ๊ฐ ์๊ธด๊ฑฐ๋๊น
ํ๋ฉด ๋ฐ์์ ์คํฐ๋์๋ค๊ณ ํด์ ์ pathfinding์ ๋ ๋ง์ด ๊ณ์ฐํ๋ค๋ ๊ฑฐ์? ๋ง์ด ์ ๋์์ ๊ทธ๊ฑธ ์ฐพ์์ ๊ณ ์น๋ผ๋ ๊ฑฐ
์๋..๋ณธ๋ฌธ๊ธ ์ฝ์ด๋ณด๋ฉด ๊ทธ๊ฒ ์๋๋ผ ํ๋ฉด๋ฐ์์ ์ํ๋๊ฒํ๋ฉด ๊ฑ ๋ฐฉ ์๊ด์์ด ๋ค ์ํํ๊ฒ ๋๋๋ฐ ์ด๋ฌ๋ฉด 1์คํ ์ด์ง์ ์๋ 100๋ง๋ฆฌ๊ฐ ํ๋ฒ์ ์ํ๋๋๋ผ๊ณ ์ด ๋ง์. ํ์ฌ ๋ฐฉ์- 1์คํ ์ด์ง ๋ชฌ์คํฐ ์ด๋ 100๋ง๋ฆฌ ๋ฐฉํ๋๋น 10๋ง๋ฆฌ ์ ๋ ๋ฐฐ์ ๊ทผ๋ฐ ๊ณ ์น ๋ฐฉ์ 1์คํ ์ด์ง ๋ชฌ์คํฐ ์ด๋ 100๋ง๋ฆฌ์ค 70๋ง๋ฆฌ๊ฐ ํ๋ฒ์ ๋์ด
100๋ง๋ฆฌ๋ฅผ ์ํ ์ ํ๋ฉด ๋์์ ๋น์ฐํ ํ์ํ ๋ ํ์ํ ๋งํผ๋ง ์ํํด์ผ์ง ๋ฏธ๋ฆฌ 70๋ง๋ฆฌ๋ฅผ ์ํํ๋ ๊ฒ ์์ฒด๋ฅผ ๊ณ ์ณ์ผ์ง
์ฒซ์งธ 100๋ง๋ฆฌ ์ค 70๋ง๋ฆฌ๊ฐ ํ๋ฒ์ ๋์ค๋ ๊ฒ ์์ฒด๊ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฑฐ๊ณ 70๋ง๋ฆฌ๊ฐ ๋์๋ค๊ณ ํ๋๋ผ๋ ์ค์ ๋ก ์ฌ์ฉํ๋ ๊ฑด 10๋ง๋ฆฌ ๋ฟ์ธ๋ฐ ๊ทธ๋ผ ๋๋จธ์ง 60๋ง๋ฆฌ๋ disable๋์ด์์๊ฑฐ ์๋? ๊ทธ๋ผ ์คํฌ๋ฆฝํธ๊ฐ ๋์๊ฐ์ง ์์ํ ๋ฐ ์ ํผํฌ๋จผ์ค์ ๋ฌธ์ ๊ฐ ์๊น ์ผ๋จ 70๋ง๋ฆฌ๋ฅผ ํ๋ฒ์ ๋์ค๊ฒ ํ๋ ๊ฒ ์์ฒด๊ฐ ์๋ชป๋ ๊ฒ์ด๋ ๊ทธ๊ฒ๋ถํฐ ๊ตฌ์กฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ณ ์ณ
๋ฌธ์ ๋ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ํด์ผํ ์ง ๊ฐ์ด ์์กํ๋ค๋๊ฑฐ์ง ๋ชฌ์คํฐ ์ํ์ ์ ์ก๋๋ค์ณ๋ ๊ทธ๋ผ ๋๋ฌด ๋ฌ์ฑ๋ฌ์ฑ ์๊ธฐ๊ฒ๋๊ณ ์ข ๊ณ ๋ฏผ์ค์ด๋ค
1. ํ๋์ ์คํฐ ํฌ์ธํธ๋ฅผ ์ค์ ํ๊ณ ๊ทธ ํฌ์ธํธ์ ๋์์ผ ํ ์ ์ข ๋ฅ์ ์๋ฅผ ์ง์ ํจ 2. ํ๋ฉด ์์ด๋ ๋ฐ์ด๋ ํ๋ ์ด์ด๊ฐ ๊ทธ ์คํฐ ํฌ์ธํธ์ ์ผ์ ๊ฑฐ๋ฆฌ ์ดํ๋ก ๋ค๊ฐ๊ฐ๋ฉด ๊ทธ ํฌ์ธํธ์ ์ ์ ์คํฐ์ํด 3. ํ๋ ์ด์ด์ ์ผ์ ๊ฑฐ๋ฆฌ ์ด์ ๋จ์ด์ง ์ ์ ๋์คํฐ ์ํค๊ณ ์คํฐ ํฌ์ธํธ์ ์ฃฝ์ง ์๊ณ ๋์คํฐ ๋์๋ค๊ณ ์๋ ค์ค 4. ๋์ค์ ๋ค์ ํ๋ ์ด์ด๊ฐ ์ด ์คํฐ ํฌ์ธํธ์ ๋ค๊ฐ๊ฐ๋ฉด ๋๋จธ์ง ์ซ์๋งํผ ๋ค์ ๋์คํฐ ์ํค๊ฑฐ๋ ๋ญ ํ์ฌ๊ฐ ์์์ ๊ด๋ฆฌํจ ๊ฐ๋จํ๊ฒ ๋ง๋ค๋ฉด ์ด๋ ๊ฒ ํ๋ฉด ์๋จ?
1. ์ฃผ์ธ๊ณต ์ฐจ์ผ๋์ ์ปค๋ค๋ ๋ฐ์ค ์ปฌ๋ผ์ด๋๋ฅผ ํ๋ ๋ฌ์์ฃผ๊ณ ์คํฐํฌ์ธํธ์๋ ์ ๋นํ ํฌ๊ธฐ์ ์ปฌ๋ผ์ด๋๋ฅผ ๋ฌ์์ค 2. ์คํฐํฌ์ธํธ์ ์ปฌ๋ผ์ด๋์ ์ด ๋ฐ์ค์ปฌ๋ผ์ด๋๋ผ๋ฆฌ๋ง ์๋ก ์ถฉ๋์ฒดํฌ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋์ ๋ ์ด์ด๋ฅผ ์ค์ ํด ์ค 3. ๋ง์ง๋ง์ผ๋ก ๋ฐ์ค์ปฌ๋ผ์ด๋์์ ontriggerenter๋ก ๊ฒ์ฌํด์ ์ถฉ๋๋ ๊ฒ ์์ผ๋ฉด ๊ทธ ์ถฉ๋์ฒด์ getcomponent<์คํฐํฌ์ธํธ ์คํฌ๋ฆฝํธ>().spawn(); ํด์ ์ง์ ๋ ์ซ์์ ์ ์ ์ง์ ๋ ์์น์๋ค ์คํฐ ์ํค๋๊ฑฐ์ง ๊ฐ์ฅ ๋ฌด์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ด๋ ๊ฒ ํ๋ฉด ๋จ ๊ทธ๋์ ํ๋ฉด๋ณด๋ค ๋ ํฐ ๋ฐ์ค์ปฌ๋ผ์ด๋๋ฅผ ์ฃผ์ธ๊ณต์ด๋ ์นด๋ฉ๋ผ์ ์ฐจ์ผ๋๋ก ๋ฌ์๋์ผ๋ฉด ์นด๋ฉ๋ผ๊ฐ ์์ง์ด๋ค๊ฐ ํ๋ฉด ๋ฐ์ ์คํฐ ํฌ์ธํธ์ ์ถฉ๋์ด ์ผ์ด๋ ํ ๊ณ ๊ทธ๋ ๊ทธ ์คํฐํฌ์ธํธ์์ ์ ์ ์คํฐ์ํค๋ฉด ๋จ
2๋ฒ์งธ ์ฑ์ฉํด์ผ๊ฒ ๋ค ๊ณ ๋ง์
Astar๊ฐ ๋ฌธ์ ๋ผ๋ฉด ๋ ๊ฐ๋จํ ๊ธธ์ฐพ๊ธฐ ๋ฐฉ๋ฒ์ ์๊ฐํ๋๊ฒ ๋ง์๋ณด์ด๋๋ฐ
๊ทธ๋ฆฌ๊ณ ๊ตฌํ์ ๋ชปํ๋ ๋จ๊ณ์์ ์ต์ ํ๊น์ง ์๊ฐํ๋ฉด์ ํ์ง๋ง๊ณ , 100๋ง๋ฆฌ ์ ๋๋ก pathfinding์ด ๋ฌธ์ ๊ฐ ์๊ธด๋ค๋ฉด pathfinding ์ด ๋ฌธ์ ์ง ์ง๊ธ ์ฑ๋ฅ์ด ์ด๋ ์๋๋ 100๋ง๋ฆฌ ์ ๋๋ก๋ ๋๋ก์์ด์ผ ์ ์.
ํ