์ด๊ฒ์ ๊ฒ ํ๋ค๋ณด๋ฉด ๊ฐ๋ฐ ์๊ฐ์ด ์์ํ ์ค์ด๋ ๋จ ๋ง์ด์ง
์๋ฌด๊ฒ๋ ํ์ง ์์ผ๋ฉด ๊ฐ๋ฐ์๊ฐ๋ง ๋๋๋ฐ ์๋ฌด๊ฒ๋ ์ํ๋ ์๊ฐ์ด ํ์ํด
์ํผ ๋จ๊ธฐ ํ์ ์
์ด๋ฒ์ ์ AI๋ ๊ณต๊ฒฉ์ ๋ง๋ค๊ฑฐ์
์ AI๋ฅผ Idle > Chase ์ด์ธ์ ๋ง๋ค์ด๋ณธ์ ์ด ์์ด์ ์ด๋ฒ์ ์ข ๋ ์๋ํด๋ณด๋ ค๊ณ ํจ
์ ์ Idle, Patrol, Chase, Evade, Attack
๋ค์ฏ๊ฐ์ง ์ํ๋ฅผ ๊ฐ์ง
Idle์ ๋๊ธฐํ๊ณ , Patrol์ ์ผ์ ์๊ฐ ๋ฌด์์ ๋ฐฉํฅ์ผ๋ก ์ด๋ํจ
Chase๋ ํ๋ ์ด์ด๋ฅผ ๊ณต๊ฒฉ๋ฒ์๊น์ง ๋ฌดํ์ ์ถ๊ฒฉํ๊ณ
Evade๋ ์ผ์ ์๊ฐ๋งํผ ํ๋ ์ด์ด ๋ฐ๋๋ก ๋๋ง๊ฐ
Attack์ ๊ณต๊ฒฉ์ค์ด๊ณ
๊ธฐ๋ณธ์ ์ธ ๋์งํ๋ ์ ์ ๋ง๋ค๊ฑด๋ฐ
ํ์์ Idle > Patrol > Idle์ ๋ฐ๋ณตํจ
๋ฒ์ ์์ ํ๋ ์ด์ด๊ฐ ๋ค์ด์ค๋ฉด ์ถ๊ฒฉ์ ์์ํ๊ณ ํ๋ฒ ์ถ๊ฒฉ ์์ํ๋ฉด ํ์ ์๋๋จ
๊ณต๊ฒฉ๋ฒ์ ๋ด์ ๋ค์ด๊ฐ๋ฉด ๊ณต๊ฒฉ ์์
๊ฒฝ๊ณ ์๋ ๋นจ๊ฐ์์ธ๋ฐ ์์งค๋ง๋๋๊น ์๊น ์ ํ ๊ฑธ๋ ค์ ์ฃผํฉ์ ๋๋ฒ๋ฆผ
๋ณด๋ฉด ์ ๋ค์ด ์ฅ์ ๋ฌผ์ ์์์ ํผํ๋๋ฐ, ๊ธธ์ฐพ๊ธฐ๋ฅผ ์ด๊ฑด ์๋
๊ธธ์ฐพ๊ธฐ๋ ๋๋ฌด ๋ฒ๊ฑฐ๋กญ๊ณ ์์ง์ ์์ฐ์ค๋ฝ๊ฒ ๋ง๋๋๊ฒ๋ ์ด๋ ค์์
๊ทธ๋ฅ Raycast๋ก ์ฅ์ ๋ฌผ ํผํ๊ฒ ๋ง๋ค์ด๋ณด์ ํ๊ณ ์๋ฃ ์ฐพ์๋ณด๋๊นย
๊ทธ๋ฅ ๋ฐ๋ก ์ฐพ์๋ฒ๋ฆผ
๋ฐฉ์์ ๋งค์ฐ ๋งค์ฐ ๊ฐ๋จํจ
๊ทธ๋ฅ ์ฝ์์ ๋ ์ด์บ์คํธ, Circle Cast๋ก ๋ฒฝ์ด๋ ์ฅ์ ๋ฌผ์์ normal ์ ๋ณด ๋ฐ์์์ ์ถฉ๋ ์ํ ๋๊น์ง normal ๋ฐฉํฅ์ผ๋ก ์์ํ ๋๋ ค๋ฒ๋ฆฌ๋๊ฑฐ์
์ด๋ ๊ฒ ๊ฐ๋จํ ์ค์ ๋ชฐ๋๋๋ฐ ์ ๋ชป๋ ์ฌ๋ ธ์๊น ์ถ๋๋ผ
์ํผ ๊ธธ์ฐพ๊ธฐ๋ก ๋ง๋ค๋ฉด ๋งค์ฐ ๋ง๋์๋๊ฒ ๊น๋ค๋ก์ ์ ๊ธธ๋ ์์์ ์ ์ฐพ์๋ค๋๋ ํด๊ณจ์ด๋ค
๋ฌผ๋ก ์ ํฉํ ๊ธธ์ด ํ๋ ์ด์ด์ ๋ฉ์ด์ ธ์ผํ๋ ๋ฐฉํฅ์ด๋ฉด ์ฝ๊ฐ ๋ฐฉํฉ์ ํ๋ค๋์
๊ทธ๋๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐฉํฅ์ ๋๋ค์ผ๋ก ๋คํ์ด์ฃผ๊ณ ๋ฐฉํฅ์ด ๋ฒฝ์ชฝ์ผ๋ก ๋ชปํ๋ค๊ณ ๋ ๋ค๋ ์ ๋๋ฌธ์ ์งํฅ์ฑ์ ๊ฐ์ ธ์
์ธ์ ๊ฐ๋ ์ฐพ์์ค๋ ์๊ณ ๋ฆฌ์ฆ์ธ๋ฏ
๊ณต๊ฒฉ ์๊ณ Indicator์ ๋์ถฉ World Space Canvas๋ก ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๋ธ๊นํจ
์ผ๋ง ์ ์ ์ ์ฐจ์ UI ์์ฑ ์์ ์ ์๋๋ฐ ๊ฝค ๊ด์ฐฎ์
https://assetstore.unity.com/packages/tools/gui/modern-procedural-ui-kit-163041
๋ค๋ฅธ ๋น์ทํ ์์ , ๋ ์ ๋ ดํ๊ฒ๋ ์๊ธด ํ๋๋ฐ ์ด๊ฑฐ ์ฐ ์ด์ ๋ ๊ฑ ์๊ฐ ํ์ด์ง์์ ์ค๋ช ํ๋ ๊ธฐ๋ฅ์ด ์ ์ผ ๋ง์์ ์์
์ํ ๊ทธ๋ผ๋ฐ์ด์ ์ด๋ผ๋๊ฐ
์ด๋ฐ๊ฑฐ ์ ๋๋ฉ์ดํ ๋ ๋์ ์ข์
๋ฌผ๋ก ์ด๊ฑธ ์ ๊ณต๊ฒฉ Indicator์ ๋ฐ๋๊ฑด ์ฑ๋ฅ์ ๊ต์ฅํ ์์ข์ ํ์ ๊ฐ๊ธด ํ๋ฐ
๊ท์ฐฎ์์ ๋ญ... ๋ ์์ฐ์ค๋ฌ์ด๊ฒ ์ข๊ณ ์ด์ ๋๋ ๊ด์ฐฎ๊ฒ ์ง ์ถ์ด์ ์ผ์
์๋ฌด๋ ๊ฒ๋ ์กฐ์ ํ๊ธฐ ํธํ๋ค๋๊ฑฐ์
์ด์ ๋์ถฉ ์ ์ ๋ง๋ค๊ณ ์๋ฆฌํธ ๋ง๋ค์ด์ผํ๋๋ฐ
hmm
์๋ฆฌํธ ๋ชน์ผ๋ก ๋ฐฅํต? ํฑ?ํฌ? ์ ํ์๋ ๊ณ ๋ธ๋ฆฐ ๊ทธ๋ ค๋ดค์
์ด๋ป๊ฒ ๊ทธ๋ฆด์ง ์ ์๋ ์ฌ๋ผ์ AI๋ก ๋งค์ฐ ๋์ถฉ.... ์ด์์ ๋ฝ์์์
์ด๊ฒ AI๋ก ๋ฝ์ ์ด์์ธ๋ฐ ใ ใ ์ข ๋งค์ฐ ๋ง์ด ๋ค๋ฅธ๊ฑฐ๊ฐ๋ค..
AI ์ฐ๋๋ฒ ์ข ๋ฐฐ์์ผ๊ฒ์
๋ค์์ ์ด์ ์ ๋นํ ์ค๋ธ์ ํธ ์ํธ์์ฉ์ ์ถ๊ฐํ ๊ฑฐ์
์ฒซ๋ฒ์งธ๋ ๋ฐ์ค์
๋ฐ์ค๊ฐ ์ข ์์ฐ์ค๋ฝ๊ฒ ๋ถ์ด์ง๋ฉด์ ์ดํํธ๊ฐ ๋จ์ผ๋ฉด ์ข์๊ฒ๊ฐ์์ ํํฐํด ์์คํ ์ผ๋ก ๊ตฌํํด๋ดค์
๋ณ๊ฑด ์๊ณ ๋์ถฉ ์์ํด์ ์ด๋ ๊ฒ ํ๋๊น ๋ฑ ๊น๋ํ๊ฒ ๋๋๋ผ
์ ์ค๊ฐ ๊ทธ๋ํ๊ฐ ๋ญ๋๋ฉด ์๋ก ์ด์ง ์์ง์๋ค๊ฐ ๋ค์ ๊ธฐ์กด Y๋ก ๋์์ค๋ ๊ทธ๋ํ์ ๋ฉด์ ์ด ๋๊ฐ๊ฑฐ๋
์งํ๋ฐฉํฅ์ ๋ฐ๋ก ์์ด์ ๋ณด์กด๋๊ณ
๋ชจ๋ ๋ฐ์ค๋ง๋ค ํํฐํด ์์คํ ์ ๋ฐ๋๊ฑด ์ข ๋ญํด์ ParticleSystem.EmitParams ์ด์ฉํด์ ํ๋์ ํํฐํด ์์คํ ์ผ๋ก ์ํ๋ ์์น์
emitParams.velocity = Random.insideUnitCircle * 5f;
์ด๋ฐ์์ผ๋ก ์์ฑํ์ ์๋๋ผ๋๊ฐ ๊ฐ๋ค์ด ๋ค ์ฌ๋ผ์ง๋๋ผ๊ณ ๊ทธ๋์ ์ง์ ๋ถ์ฌํด์ผํจ
๊ทธ์ธ์๋ ์์๋ ๋ ๋ฒ๊ฐ์ ๋ฒ์ฉ ์ํธ์์ฉ ์์คํ ๋ ์ถ๊ฐํ์ ๊ท์ฐฎ์ผ๋ ์์์ผ๋ก
๋๋ต ์ ํฌ ํ๋กํ ํ์ ์ด ์์ฑ๋์ด๊ฐ๋ค
์ฌ์ฌ ๋ก๋น๋ ๊ฐ์ฒ๋ ๋์ ๋ ๋ง๋ค์ด์ผํจ
์ ์ ๋ฐ ์ด๋ ๋งค์ปค๋์ฆ๋ ์๊ตฌ๋ ๋ฐฐ์๊ฐ๋๋ค