코린이 부트캠프 일상

유니티 FSM -유한 상태 기계

게발인개발자 2023. 12. 26. 20:39

FSM(Finite - State Machine) 이란?

상태를 기반으로 동작을 제어하는 방식을 구현하기 위한 디자인 패턴이다.

FSM의 핵심은 단 하나의 상태만을 가진다는 점이다. 상태를 기준으로 어떤동작을 수행할지 결정하기 때문에 현재 상태만 알 수 있으면 어떤 동작을 수행하려 하는지 명확히 파악할 수 있고 구현이 쉽다는 장점이 있다.

 

Ex) 플레이어, 적, NPC와 같은 캐릭터의 행동을 "대기","걷기", "근거리 공격" 등과 같이 쉽게 처리할 수 있는  상태 단위로 관리하는 것

 

FSM의 장점

쉬운 구현 / 오류수정 용이 / 유연한 코드 / 직관적인 코드

 

FSM의 활용

-플레이어, 적, NPC와 같은 개인 단위의 행동 관리

-스포츠, RTS 등의 장르와 같이 여러 캐릭터를 한꺼번에 다룰 때 단체 행동 관리

-유니티의 씬 단위 관리

-유니티의 애니메이션 시스템

 

파란색은 개별적인 상태 / 화살표와 초록색은 전환 조건 및 방향