FSM for Unity Animation
출처 : https://www.youtube.com/watch?v=Vt8aZDPzRjI
State에 대한 추상 클래스를 만든다.
StateManager에서 instance로 만들어줄거니까 MonoBehaviour 상속은 지운다.
추상 클래스를 상속받는 상태 클래스 스크립트들을 만든다.
StateManager의 모습은 다음과 같다.
각 상태에 대한 인스턴스를 갖고,
해당 인스턴스의 EnterState()나 UpdateState()를 호출하여 상태를 관리한다.
각 상태에서 전환 조건이 발생하면 호출할 SwitchState()도 public으로 만들어준다.
다른 인스턴스들을 참조해야하니 객체들도 public으로 만들어준다.
종료 조건이 발생할 때 SwitchState()를 호출하는 예시
OncollisionEnter같은 정보를 전달하기 위해 State에도 같은 이름의 함수를 만들고, 호출해준다.
이름만 같은거고, Monobehaviour에서 일어나는 충돌 이벤트 감지같은 건 일어나지 않으니
충돌 시의 로직만 짜주면 된다.