์จ์ด ํฌ์ธํธ ๋ฐ๋ผ์ ์ด๋ํ๋ ๋ชฌ์คํฐ๋ฅผ ๋ง๋ค ์์
ย void Move()
ย ย ย {
ย ย ย ย ย ย ย
ย ย ย ย ย ย if (wayPoints.Length > pointIndex)
ย ย ย ย ย ย ย {
ย ย ย ย ย ย transform.position = Vector2.MoveTowards(transform.position, wayPoints[pointIndex]
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย .transform.position, moveSpeed * Time.deltaTime);
ย ย ย ย ย ย ย if (transform.position == wayPoints [pointIndex].transform.position)
ย ย ย ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย ย pointIndex += 1;
ย ย ย ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย }
ย ย ย }
ย ย ย
ย ย ย {
ย ย ย ย ย ย ย
ย ย ย ย ย ย if (wayPoints.Length > pointIndex)
ย ย ย ย ย ย ย {
ย ย ย ย ย ย transform.position = Vector2.MoveTowards(transform.position, wayPoints[pointIndex]
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย .transform.position, moveSpeed * Time.deltaTime);
ย ย ย ย ย ย ย if (transform.position == wayPoints [pointIndex].transform.position)
ย ย ย ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย ย pointIndex += 1;
ย ย ย ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย }
ย ย ย }
ย ย ย
๋์ถฉ ์๋ผ
๊ทผ๋ฐ ์จ์ดํฌ์ธํธ ๊ฒฝ๋ก์์ ํ๋ ์ด์ด๊ฐ ์์ผ๋ฉด '๋ฉ์ถ๊ณ ' '๊ณต๊ฒฉ'ํ๊ฒํ๊ณ ์ถ์
๊ทผ๋ฐ ์ด๋ป๊ฒ ๋ฉ์ถฐ์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์
์ ๊ฐ๋ต๋ตํ๋ค ใ
ใ
fsm ๋ง๋ค์
๊ทธ๊ฒ๋ชจ์์ ใ ใ ?
๊ฐ ์ํฉ๋ณ๋ก ์ํ๋ฅผ ๋ถ์ฌํด์ ๊ทธ ์ํ์ ๋ง๋ ๋ก์ง์ด ๋์๊ฐ๊ฒ ํ๋๊ฑฐ์.
์๋ฅผ๋ค์ด ํ์ฌ ๊ทธ๋ฅ ๊ฑธ์ด๊ฐ๋ ์ํ๋ผ๋ฉด ๊ณ์ํด์ ๊ฑท๊ฒ ํ๋ค๊ฐ ์์ ์ ์ ๋ฐ๊ฒฌํ๋ฉด ๊ณต๊ฒฉ์ด๋ผ๋ ์ํ๋ก ๋์ด๊ฐ๊ฒ ํ๋๊ฑฐ์ผ
์์ธํ๊ฑด ๊ฒ์ํด๋ณด๋๊ฒ ์ ์ผ ์ข์ FSM ํน์ ์ ํ ์ํ๋จธ์ ์ด๋ผ๊ณ ๊ตฌ๊ธ๋ง ใฑใฑ
์ด๋ณด์ํํ fsmํ๋ผ๋์๋ผ๊ฐ์๋ค ใ ใ ใ ์กด๋๋์์ ๊ธฐ๋ค ในใ
fsm ๊ทธ๋ ๊ฒ ์ด๋ ค์ด ๊ฐ๋ ๋ ์๋์๋
1. ๋ ์ด์บ์คํธ๋ ๋ผ์ธ์บ์คํธ๋ฅผ ์ด๋๋ฐฉํฅ์ผ๋ก ์ผ์ ๊ฑฐ๋ฆฌ๋งํผ ์ด์ ํ๋ ์ด์ด๊ฐ ๋ง์ผ๋ฉด ๊ณต๊ฒฉ 2. ๋ชนํํ ์ฝ๋ผ์ด๋ ๋ถ์ฌ์ฃผ๊ณ OnTriggerEnter๋ก ํ๋ ์ด์ด์ ๋ถ๋ชํ๋ฉด ๊ณต๊ฒฉ
๋ชฌ์คํฐ ํ์ฌ ์ํ ์ ์ฅํ๋ ๋ณ์ ๋ง๋ ๋ค์ update๋ ํ์ฌ ์ํ์ ๋ฐ๋ผ ์ค์์น-์ผ์ด์ค๋ก move(), attack()๋ฑ ํด๋น ๋ฉ์๋ ํธ์ถํด์ ํ์ธ์ ์ด๊ฒ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์ด๊ณ ์ด ๋ฐฉ์์ ๋ฌธ์ ์ ๋ค์ ๊นจ๋ฌ์๋ ์ฏค ์๋ fsm ์ฐพ์๋ณด์๋ฉด ๋จ
์ด๋ ๊ฒ ์ค๋ช ํด์ค๊ฑธ ๊ทธ๋ฌ๋ค
์ ์ผ๋จ ํด๋ณผ๊ฒ ์๋ ค์ค์ฑ ๊ณ ๋ง์ก
์ํ๋๋ฐ๋ก ๊ฐ๋ฐํ๋ฉด์ ๊ณต๋ถํ๋๊ฑด ์ ์ ๋ฉ์ถ๊ณ ์ฑ ๋ณด๋ฉด์ ๊ธฐ๋ณธ๊ธฐ ๋ค์ ธ์ผ ํ ๋๊ฐ ์จ๊ฑฐ์์ค
move ๋ ๋ง๊ทธ๋๋ก ์์น๋ก ์ด๋ํ๋ ๊ธฐ๋ฅ๋ง ๋ง๋ ๋ค๊ณ ์๊ฐํด. ์จ์ดํฌ์ธํธ๋ณ๋ก move๋ฅผ ์์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๋ณ๋๋ก ๋ง๋ค๊ณ , ํ๋ ์ด์ด๋ฅผ ์ฐพ์์ ๊ธฐ๋กํ๋ ๊ธฐ๋ฅ์ ๋ณ๋๋ก ๋ง๋ค๊ณ , ๊ธฐ๋ก๋ ํ๋ ์ด์ด์์น๊ฐ ์์ผ๋ฉด ๊ฑฐ๊ธฐ๋ก moveํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ , ๊ณต๊ฒฉ๋ฒ์์์ ํ๋ ์ด์ด๊ฐ ์์ผ๋ฉด ๊ณต๊ฒฉํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ , ... ํ๋ ์์ผ๋ก ๋ถํดํด์ผ ๋ง๋ค๊ธฐ ์ฌ์ธ๊ฑฐ์
move๋๊น ์์ง์ด๋ช์ ํ๋๊ฑธ ๋์ถฉ ๋ค ํด์ฃผ๋๊ฑฐ ๋ผ๊ณ ์๊ฐํ๊ณ ๋ง๋ค๋ฉด ๋์ค์ ์ฝ๋์ ๊น๋ ค์ ์ฃฝ์