티스토리 뷰

Unity

Simple StateMachine

빵원군 2019. 12. 26. 15:53

BW.StateMachine.Unity.zip
0.01MB

 

사용하기 편하고 심플한 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키를 눌러야 한다.)

 

 

샘플 프로젝트 유니티 패키지는 아래에 있다.

BW.StateMachine.unitypackage
0.01MB

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함