FSM이란?
상태패턴?
Behavior Tree란?
구현 난이도 : FSM < 상태패턴 < BT
구조 복잡할수록 효율 : FSM < 상태패턴 < BT
FSM(Finite State Machine)
상태를 기반으로 동작을 제어하는 시스템을 구현하기 위한 모델중 하나
유니티에서는 애니메이터 컨트롤러가 FSM을 이용해 구현되어 있다.
객체의 상태변화(파라미터값)으로 다른 애니메이션 실행이 가능
일반코드로 구현한 상태 패턴은 아래처럼 상태에 따라 다른 로직을 처리한다.
단점: 상태많아질때마다 코드가 길어짐, enum하나씩 추가되며 상태추가 -> 그래서 상태패턴을 쓴다 (새로운 클래스를 추가해가 해주는 방식)
public enum State{ Idle, Walk, Run };
private State currentState = State.Idle;
private void Update()
{
switch(currentState)
{
case State.Idle:
Debug.Log("Idle");
break;
case State.Walk:
//이동시 로직코드
break;
}
}
상태를 객체로 뽑아내는 상태패턴이라는게 있음. FSM과 엮으면 좋음 다음주에 학습예정
상태 패턴