Unity/기능

[Unity] StateMachineBehaviour

turbulence93 2025. 6. 25. 20:13

개요

StateMachineBehaviour는 Unity Animator에 직접 붙일 수 있는 스크립트형 컴포넌트로,
해당 상태가 시작, 업데이트, 종료 등에 특정 코드를 실행할 수 있게 해준다.

 

  • 생성하기

스크립트 생성

  • 생성 후

스크립트 생성


주요 메서드

  • OnStateEnter() : 상태에 진입할 때 실행
  • OnStateUpdate() : 상태가 활성화되어 있는 동안 매 프레임 실행
  • OnStateExit() : 상태가 종료될 때 실행

활용 예시

  • 애니메이션이 끝난 뒤 공격 가능 상태로 복귀
  • 특정 상태에서 효과음이나 이펙트 재생
  • 상태 전환 시 FSM에 콜백 전달

특징

  • Animator 상태(State) 하나당 1개 이상의 StateMachineBehaviour를 붙일 수 있음
  • animator.GetComponent<T>()로 부모 오브젝트의 스크립트에 접근 가능

정리

  • 애니메이터 클립에 AddEvent를 통해 스크립트를 붙일수도 있지만 AddEvent의 경우 이벤트를 놓치는 경우가 종종 생긴다.
  • 그래서 다른 방법이 없을까 하고 찾아봤는데 해당 기능을 발견했다.
  • 다른건 몰라도 진입, 종료는 정말 확실하게 체크해주는 것 같다.