์ FSM์ ์ค๊ณํ๊ณ ์์ด์.
์ฒ์์๋ Normal Enemy, ๋ณด์ค๊ธ์ ์ ๋ถ ๊ฐ๋ณ
์ด๋ฐ์์ผ๋ก ๊ฐ๋จํ๊ฒ ๋๋ด์ด์.
๊ทธ๋ฆฌ๊ณ ย ์ด๊ธฐํํ ๋ย State Controller์ย ๊ฐ์ง ์ ์๋ State๋ฅผ ๋ฃ์ด์คฌ๋๋ฐ,
์๊ฐํด๋ณด๋๊น ๋ณด์ค๊ธ์ด ์๋์ด๋
1. ๊ฑธ์ ์ ์์ง๋ง ๋ฌ๋ฆดย ์ ์๋ ๋
2. ๋ฌ๋ฆดย ์๋ ์๋ ๋
3. ํผ๊ฒฉ ๋ฉด์ญ์ด ์์ ์๋ ๋
4. ์ฝํ ํผ๊ฒฉ์ ๋ฉด์ญ์ธ ๋
5. 1๋ฒ์ด๋ฉด์ 3๋ฒ์ธ๋
6. 1๋ฒ์ด๋ฉด์ 4๋ฒ์ธ๋
๋ฑ๋ฑ ์ ๋ถ ๋ค๋ฅผ ์ ์๋๋ผ๊ณ ์.
์๋ฅผ ๋ค์ด ํ๋ ์ด์ด ์ถ์ ์ํ์ผ ๋ "๋ฌ๋ฆด ์ ์๋ ๋"์
ํ๋ ์ด์ด์ ์ผ์ ๊ฑฐ๋ฆฌ ์ด์์ผ๋๋ ๋ฌ๋ฆฌ๊ธฐ ์ ๋๋ฉ์ด์ ์ฌ์ + ์ด๋ ์๋ ์กฐ์ ์ ํด์ค์ผํ๊ณ
"๋ฌ๋ฆด ์ ์๋ ๋"์ ๊ฑฐ๋ฆฌ์ ์๊ด ์์ด ๊ฑท๊ธฐ ์ ๋๋ฉ์ด์ ๋ง ์ฌ์ํด์ฃผ๋ ค๊ณ ํ๊ฑฐ๋ ์.
์ด๊ฑธ ํ์ธํ๋ ค๋ฉด ๋ชฌ์คํฐ ์คํฌ๋ฆฝํธ์ ์ธํฐํ์ด์ค ๋ถ์ฌ์ ํ์ธ์ ํด์ค์ผํ ๊ฒ ๊ฐ์๋ฐ
๊ฒฐ๊ตญ ๋ชฌ์คํฐ๋ง๋ค ์ธํฐํ์ด์ค๊ฐ ๋ค๋ฅด๋ค๋๊ฑดย ๋ชฌ์คํฐ๋ง๋ค ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด์ผ ํ๋๊ฑฐ ์๋๊ฐ์?
๊ณ ์๋๋ค์ ์์คํ ์กฐ์ธ ๋ถํ๋๋ฆฝ๋๋ค.
๋ถ๋ชจ(parent)์ ์์(inherit)์ ์ฐธ๊ณ ํ์๋ฉด ์ข์๊ฑฐ ๊ฐ๋ค์.
์์์ ํ๊ณ ๋์ ์ ๋ง๋๋ก runnable = true/false; ์ด๋ผ๋์ง hitImmute = true/false; ํ๊ณ ํ๋์ ํ ๋ ๋ณ์๋ฅผ ์ฒดํฌํ๋ฉด ๋ ๊ฑฐ๊ฐ์ต๋๋ค.
๋ณ์๋ผ๋๊ฑธ ์จ๋ณด์
๋์์ผ๋ฉด ๋ฉด์ญ ๊ฐ์๊ฒฝ์ฐ๋ ๋ฒํ ์์คํ ์ ๋ง๋ค์ด์ ๋ฉด์ญ ๋ฒํ๋ฅผ ์ฃผ๋ ํ์์ผ๋ก ๊ฐ๊ฑฐ ๊ฐ์ ์ด๋ฌ๋ฉด ์์ฉ์ด ๋ง์์ง๊ฒ ์ง ์ ์ด์ ๊ฒ์์์ ๋ฒํ ๋๋ฒํ ์์คํ ์ ํ์ฉ๋๊ฐ ๋ง๊ธฐ๋ ํ๊ณ
๊ทธ๋ฆฌ๊ณ ํด๋์ค๋ ์์์ด ๊น์ด์ง๊ณ ๊ฐฏ์๊ฐ ๋ง์์ง๋ฉด ์ ์ง๋ณด์๊ฐ ํ๋ค๊ณ ์ฌ์ค ์์ฐ์ฑ๋ ๋ฎ์์ง๋๊น ์ต๋ํ ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌํด์ ๋ง๋๋๊ฒ ์ข์๋ฏ Playmaker ๊ฐ์ fsm๋๊ตฌ ์ฌ์ ์ด๋ ํ ํ๋์ ๊ฐ์ฒดํ ์์ผ์ ์ด๋ ๋ชฌ์คํฐ๋ ์ฌํ์ฉ ํ ์์๊ฒ๋ ํ ๋ฏ ๊ฐ๋ น ๋ฌ๋ฆฌ๋ ํ๋์ fsm์ ๋ถ์ด๊ณ ๋์ ์๊ฒ๋