์๋ ํ์ธ์ ์ฆ๊ฑฐ์ด ์ผ์ ์ ๋ ์ ๋๋คย ์ฃฝ์ง๋ ์๊ณ ย ๊ธฐ์ด์์ด์
์ด๋ฒ์ฃผ์๋ ์์ ์บ๋ฆญํฐ ์ ๋๋ฉ์ดํฐ๋ ๊ณ์ธต์ ์ธ FSM์ย ๋ง๋ค์ด๋ดค์ด์
์ฌ๋ฌ๊ฐ์ ์คํ๋ผ์ดํธ๋ฅผ ๊ต์ฒดํ๋ ๊ฒ๋ง์ผ๋ก ๋์ผํ ๋์์ด์ง๋ง ๋ชจ์๋ง ๋ฌ๋ผ์ง๋ ์ํฉ์ด ํ์ํ๊ณ ย (๋์์ ๊ฐ์๋ฐ ์ฅ๋ ๋ฌด๊ธฐ๊ฐ ๋ค๋ฅด๋ค๋์ง)
์๋ฐ์ , ํ๋ฐ์ ์ด ๊ฐ์ ์ ํธ๋ฅผ ๋ฐ์์ ํ๊บผ๋ฒ์ ์์ง์์ผ๋ฉด ์ข๊ฒ ๋ค ์ถ์ด์
์ธ๋ฑ์ค๋ฅผ ๋ฐ๊พธ๋ฉด ๋์์ด ๋ฐ๋๊ณ (์ฌ๋ฌ๊ฐ ์คํ๋ผ์ดํธ์์ ํ์ํ ์คํ๋ผ์ดํธ๋ฅผ ๋ฐ๊พธ๊ณ )
์คํ๋ผ์ดํธ๋ฅผ ๋ฐ๊พธ๋ฉด ๋ชจ์ต์ด ๋ฐ๋๋๋ก ๊ตฌํํด๋ดค์ด์
ScriptableObject๋ฅผ ์ฌ์ฉํด์ ์บ๋ฆญํฐ๊ฐ ์ฌ์ฉํ๋ ์ ๋๋ฉ์ด์ ํด๋ฆฝ์ ๊ตฌํํด๋ดค์ด์
ํด๋ฆฝ ๋ด์ ํ๋ ์๋ค์ด ๋ ๋ํ ํ์ ๋ฑ๋ก๋๊ณ , ๋ ๋๋ฅผ ์ํด ๋ถ๋ฌ์ค๋ฉด์ ํ์ด๋จธ๋ฅผ ์ด๊ธฐํ ์ํค๊ณ ํน์ ํ ๊ธฐ๋ฅ์ ์ํํ๋๋ก ๊ตฌํํด๋ดค์ด์
๋ฐ๋ณต ์ฌ๋ถ๊ฐ ์ผ์ง๋ฉด ๋ฏธ๋ฆฌ ๋ค์ ํด๋ฆฝ์ ํด๋น ํด๋ฆฝ์ผ๋ก ์ค์ ํ ๋๊ธฐํ๋๋ก ๋ง๋ค์ด๋จ์ด์
์ผ๋จ์ ์ธ๊ฒ์์ ๋ฃ์ด๋๋ค๊ฐ ๊ณ์ ํธ์ถํด์ ์จ๋จน์ด์ผ ํ๋
์ฑ๊ธํค ๋งค๋์ ๋ฅผ ๋ง๋ค์ด์ ์คํ๋ผ์ดํธ ๋ฌถ์์ด๋ SO๋ก ๋ง๋ ์ ๋๋ฉ์ด์ ํด๋ฆฝ์ ์ ์ฅํด๋๊ณ
์คํ๋ผ์ดํธ ๋ฌถ์์ ๋ณ๊ฒฝํด์ ๋ชจ์์ ๋ฐ๊ฟ์ค ์ ์๊ณ (์๋งํด๋ก ์น๋ฉด ์บ๋ฆญํฐ์ ๊ฐ์ ๋๋)
์ ๋๋ฉ์ด์ ํด๋ฆฝ์ ๋ณ๊ฒฝํด์ ๋์์ ๋ฐ๊ฟ์ค ์ ์๊ฒ ๊ตฌํํด๋ดค์ด์
์ ๋๋ฉ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ย ํด๋ฆฝ์์ ์ฌ๋ฌ๊ฐ์ ํ๋ ์์ ๊ฐ์ ธ์์ ๋ ๋ํ ํ์ ๋ฑ๋กํด๋๋ ๋ฐฉ์์ธ๋ฐ,
๋ด๋ถ ํ์ด๋จธ๊ฐ ๋๋ฉด์ ํ๋ ์ย ์๊ฐ์ ๋๋ฌํ๋ฉด ๋ค์ ํ๋ ์์ ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ด๋๋๋ค.
๋ค๋ฅธ ์ ๋๋ฉ์ด์ ์ผ๋ก์ ์ ํ์ ์ํ๊ธฐ๊ณ์ ํต์ ๋ฅผ ๋ฐ๊ฒ ํ๊ณ ์ถ์ด์ ๋ฐ๋ก ๊ตฌํํด๋์ง ์์๋๋ฐ
๋ง์ฝ ํ์ํ๋ค๋ฉด ๋ง๋ค์งย ์์๊น ์ถ์ด์
๊ทธ๋ฆฌ๊ณ ํ๋ฅผ ์ฌ๋ฌ๊ฐ ๋ง๋ค์ด์ ๋ถ์๊ฐ ๋๋์ด์ง ์คํ๋ผ์ดํธ๋ค๋ ํ๊บผ๋ฒ์ ํต์ ๋ฐ์ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค
๋จ์ผ ์คํ๋ผ์ดํธ (๊ณต์ค์ ๋ ์๋ ์คํ๋ผ์ดํธ) ๋ ๋จ์ผ, ๋ฐ๋ณต ์ ๋๋ฉ์ด์ ์ ์๋ํ๊ณ
๋ณต์ ์คํ๋ผ์ดํธ (์ง์์ ์๋ ํ๋ ์ด์ด ์คํ๋ผ์ดํธ) ๋ ์ํ์ ๋ถ์ ๋จ์ผ, ๋ฐ๋ณต ์ ๋๋ฉ์ด์ ์ ์๋ํ๋ค์ :)
์ด๋ฅผ ๋ฐ๋ผ ๊ตฌํํด๋ณด๋ ์คํ๋ผ์ดํธ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ธ๋ฑ์ค๋ก ์ธํด ์ถ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ๋์์ด ๋ถ์์ฐ์ค๋ฝ๊ฒ ๋ฐ๋์ง ์๋ ์ ๋๋ฉ์ดํฐ๊ฐ ๋์์ต๋๋ค
์บ๋ฆญํฐ์ ์ข ๋ฅ์ ์๊ด์์ด ํผ๋ธ๋ฆญ ๋ฉ์์ง๋ก ํต์ ๋ฐ์ ์ ์์ด ํ์๋ผ์ธ ์ด์ ๊ฐ์ ๋ฐ์ ๋ถ์ด๊ธฐ์๋ ๊ด์ฐฎ์ ์์คํ ์ด ๋์จ๊ฒ ๊ฐ์์
์ํฉ์ ๋ฐ๋ผ ๋์ฒ๊ฐ ๋๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค๊ณ ๋์ ์ด๊ฑธ ์ฌ์ฉํด๋ณผ ์ํ๊ธฐ๊ณ๋ฅผ ๋ง๋ค ํ์๊ฐ ๋ณด์ด๋๋ผ๊ตฌ์
ํ์ง๋ง ๋จ์ํ ์ํ๊ธฐ๊ณ ํ๋๋ฅผ ๋ง๋ค๊ธฐ์๋ ๋ฐ๊นฅ์์์ ๋งต ์ด๋์ ๋ฒจํธ์คํฌ๋กค ๊ฒ์ ์ฒ๋ผ ์๋ค ์ข์ฐ๋ก ์ด๋ํ์ ์ข๊ฒ ๊ณ ํ๋๋ ์ ํ ๋์ด์ผํ๊ณ
๊ฑด๋ฌผ ์์์๋ ์ํ์ข์ฐ๋ก ์์ง์ด๊ฒ ํต์ ํ๊ณ ์ถ๊ณ ํ๋๋ ๋ ์คํํด์คฌ์ ์ข๊ฒ ๋๋ฐ, ์ด๋ป๊ฒ ๊ตฌํํ ๊น ๊ณ ๋ฏผ์ ํด๋ดค์ด์
๊ทธ๋์ ๊ณ์ธต์ ์ธ ์ํ๊ธฐ๊ณ๋ฅผ ์ฐธ๊ณ ํด์ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ์ด์
root ์ํ๊ธฐ๊ณ ๋ฐ์์ ์๋ธ ์ํ๊ธฐ๊ณ๋ค์ ์ ํํ๋ฉฐ ์์ ๋ค์ด์๋ ์ํ์ ํ๋์ ์ ํด์ ์ค์ฒดํํ๊ณ ์ถ์์ต๋๋ค
๊นํ๋ธ์ HFSM์ ๊ตฌํํ์ ๋ถ์ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์๊ธธ๋ ์คํย ๋๋ฌ๋๋ฆฌ๊ณ ย ์ฐธ๊ณ ํด๋ดค์ด์
์ ๋๋ฆญ์ ํ์ฉํ๊ณ ย ์ ํ๊น์ง ๊ตฌํํ์ ์์ฑ์๋ถ์ ์ฝ๋๋ ๋ค๋ฅด๊ฒ ์ ๋ ๋ง์ด ์์์ ์ด๊ฒ ๊ฐ๋ฐํ๋ฏ ํ๋ค์
https://github.com/Inspiaaa/UnityHFSM
GitHub - Inspiaaa/UnityHFSM: A simple yet powerful class-based hierarchical finite state machine for UnityA simple yet powerful class-based hierarchical finite state machine for Unity - Inspiaaa/UnityHFSMgithub.com๊ทธ๋์ ์ํ์ ํ๋๋ค์ ์ธํฐํ์ด์ค๋ก ํํํด์ฃผ๊ณ , ์ํ์ ์ํ๊ธฐ๊ณ ๋๋ค IState๋ก์ ๊ฐ์ฃผํ๊ณ ์๋ํ๊ฒ ๊ตฌํํด์คฌ์ด์
Input Action์ผ๋ก ๋ง๋ค์ด์ง ์ฝ๋ฐฑ๊ณผ ์ฐ๊ฒฐํด์ฃผ๋ ค๊ณ ์ด๋ฅผ ์ํ ๋ฉ์์ง๋ ๋ฃ์ด๋์ต๋๋ค
์ํ๋ฅผ ๋ง๋ค์ด์ ํ๋์ ๊ตฌํํด์ฃผ๊ณ , ์กฐ๊ฑด์ ๋ฐ๋ฅธ ์ ํ์ ์ธ๋ถ๋กย ๋นผ๋์ง ์๊ณ ย ์ํ ๊ฐ์ฒด ๋ด๋ถ์ ๋ฃ์ด๋๊ธฐ๋ก ํ์ด์.
์ฌ๊ธฐ๊น์ง ๋ง๋ค์์๋ ๊ด์ฐฎ์ ๋ณด์๋๋ฐ, ์ํ ๊ตฌ์กฐ๋ฅผ ์ง์ ๋ฃ์ด๋ณด๋ ์ ํ๋ ๋ํ ์ผํ๊ฒ ๊ตฌํํ ํ์๊ฐ ์์ด๋ณด์ด๋ค์
์๋ธ ์ํ๋จธ์ ์ ๊ตฌํํ๊ณ ๋ฃจํธ ์ํ๋จธ์ ์ ๊ตฌํํด ๋๊ฐ๋ฅผ ๋ฃจํธ ์ํ๋จธ์ ์ ํฌํจ์์ผ์
์ฌ๋ฌ๊ฐ์ ์ํ๋ฅผ ํ๋์ ์ํ๊ธฐ๊ณ๋ก ๋ฌถ๊ณ , ๊ทธ๊ฑธ ๋ค์ ์ํ๋ก์ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค
์ํํด๋ณด๊ธฐ ์ํด์ ๊ฑด๋ฌผ์ ์ง์ ํ์๋ ํ๋ ์ด์ด์ ์ํ๋ฅผ ์ผ์ธ ์ํ์์ ์ค๋ด ์ํ๋ก ๋ฐ๊พธ๊ฒ ๋ง๋ค์ด ๋ดค์ด์
๋ง์ ์ฐ์ด๋๊ณ ๋ณด๋ ํค๋ณด๋๋ฅผ ๋๋ฅด๋ ์ ๋ ฅ์ด ํ๋ฉด์ ๋ด๊ธฐ์ง ์์์ง๋ง, ๊ฑด๋ฌผ ์ง์ ์ ์ผ์ธ ์ํ์์ย
์ผ์ธ์์๋ ์๋ค์ข์ฐย ์์ง์ ์ํ์ย ๋๊ธฐ ์ํ๋ฅผ ๋๋๋ค๋ฉฐย ์๋ํ๊ณ , ์ค๋ด์์๋ ์ข์ฐ ์์ง์๊ณผ ๋๊ธฐ ์ํ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค
์ด์ ๋ค์์ฃผ์ ์ํ๋ฅผ ์ข๋ ๋ง๋ค์ด์ ์กฐ์์ ๋ํ ์ผ์ ๋ํ๊ณ ์ด๊ธฐ๋ฅผ ํ์ฉํ ์ ํฌ ์ํ๋ฅผ ๊ตฌํํด๋ณด๋ ค๊ณ ํด์
ํนํ ์ ํฌย ์ํ๋ฅผ ๋ง๋ค๋ ๋ํ ์ผ์ ์ ๊ฒฝ์ ๋ง์ด ์ธ๊ฒ ๊ฐ๋ค์
์ ๋ฒ์ ๋ง๋ ํ๋กํ ํ์ ์์๋ ์ด๊ธฐ๊ฐย csv ๋ฐ์ดํฐ๋ ์ฐ๊ฒฐ๋์ด ์์ด์ ๋ฐ๋์ด๋ ๋ฐ๋ฏธ์ง, ์ฐ์ฌ๋ ฅ์ ์ํฅ์ด ๊ฐ๋๋ก ๊ตฌํํด๋๋๋ฐ
์ด๋ฒ์ ์ ๋ฆฌํ๋ฉด์ ๋ ๋ณ๊ฒฝ์ด ์ฝ๊ฒ ๊ตฌํํ๋๊ฒ ๋ชฉํ์ ๋๋ค :) ๋ฌผ๋ก ์๋ก์ด ์ ๋๋ฉ์ดํฐ์ ์ ์ด์ฐ๋ฌ์ง๋๋ก ๊ฐ๋ฐํด์ผํ ๋ฏ ํฉ๋๋ค
์ค๋ ์ฃผ๋ ์ฌ๋ฌ๋ถ ๋ค๋ค ํ์ดํ ์ ๋๋ค :D ๊ทธ๋ผ ์ ๋ ์ด๋ง..์ด์ด^^
๋๊ธ 2