티스토리 뷰
사용하기 편하고 심플한 StateMachine 이 필요하여 구현하였다.
일반적으로 사용가능한 BW.StateMachine.dll
유니티엔진에서 사용가능한 BW.StateMachine.Unity.dll
유니티에서 사용하는 방법은 간단하다.
유니티 프로젝트 Plugins 폴더에 2개 파일을 Import한다.
예제 스크립트 파일들..
사용할 State들을 enum으로 정의한다.
MyState.cs 파일에 Init, State1, Final State를 정의했다.
중요!!! enum으로 정의한 State 이름과 StateHandler Class 이름이 동일해야한다.
각 State이름에 맞게 StateBase<(States Enum 이름)>을 상속받은 State Handler Class들을 구현한다.
Enter()함수 Update()함수 Exit()함수를 override 하여 State를 구현한다.
각 State를 관리 전환할 StateMachine 객체를 선언한다.
아래 예제는 시작후 5초가 지나면 State1로 전환된다.
StateBase를 상속받은 State Handler는 Machine 프로퍼티로 StateMachine 객체에 접근하여 State Handler 내부에서도 State확인 및 전환이 가능하다.
아래 예제는 Space키가 눌렸을 때 Final State로 전환된다.
예제를 실행하면 아래와 같은 결과가 나온다.(State1 -> Final로 넘어갈때는 Space키를 눌러야 한다.)
샘플 프로젝트 유니티 패키지는 아래에 있다.
'Unity' 카테고리의 다른 글
Simple State Machine Update 2020.01.13 (0) | 2020.01.13 |
---|---|
GPU Video Player (1) | 2020.01.09 |
Tag를 Unity Editor가 열렸을때 자동 추가 (0) | 2019.12.24 |
SourceTree(git)에서 Scene 충돌시 병합툴(UnityYAMLMerge.exe) (0) | 2018.12.19 |
Unity 인스펙터에서 Array 속성의 Element Name 변경 (0) | 2018.12.05 |