서론
- 새로운 동작을 추가할 때마다 새로운 state flag를 추가해야 한다.
- 여러 가지 상태가 복잡하게 얽히면서 버그가 발생한다.
- 코드가 점점 더 수정하기 어려운 구조로 변한다.
- → 이 문제를 해결하기 위해 "상태(State) 패턴"을 사용할 수 있다.
FSM 이란?
Enum과 Switch 문을 사용한 상태 관리
State 패턴이란?
FSM (Finite State Machine)
- 단순한 상태 전환이 필요할 때
- UI 화면 전환, 메뉴 시스템, 간단한 NPC AI
HSM (Hierarchical State Machine)
- 상태 간 공통 동작이 많을 때
- 게임 내 캐릭터의 움직임 관리 (점프, 웅크리기, 걷기 등)
PDA (Pushdown Automata)
- 과거 상태를 기억하고 돌아갈 필요가 있을 때
- 복잡한 애니메이션 전환 (사격, 공격 후 원래 상태로 복귀 등)