새소식

기타/디자인패턴

[디자인 패턴] State

  • -

[출처]https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns

 

Level up your programming with game programming patterns

Our new e-book explains well-known design patterns and shares practical examples for using them in your Unity project.

unity.com

 

 

 

객체 내부 상태의 변경될 때 객체가 동작을 변경할 수 있도록 함
각 상태에 대해 정의된 인터페이스를 활용하여 유지보수가 용이
각 상태를 변경할 수 있는 중간자인 Handles이 존재

다이어그램

IState 각 상태에 따른 동작을 위한 함수가 정의되어 있음.
Enter은 상태 진입시 초기화
Update는 상태 유지
Exit는 상태 해제 시
StateMachine 각 상태에 대해 생성과 참조
정의된 상태 변경을 해주는 Handles 역할
PlayerController에서 생성되어서 참조됨

 

 


 

상태 변경을 위 Interface의 내부

 

 

 

 

상태 변경을 위한 Interface의 내부를 나타낸다.

 

 

 

 

 

 

 

 

 

 


 

각 상태에 대한 생성과 변경, 업데이트 동작을 수행한다.

StateMachine의 내부

 


현재 Idle 정의된 동작을 실행한다.

실제 동작에 대한 변경도 PlayerController에서 수행하는 것이 아닌 참조된 PlayerController 바탕으로 변경된다.

Idle 상태에 대한 예시


PlayerController 내부 에서는 StateMachine을 생성 후 자신에 대한 참조값을 전달한다.

상태 변경도 초기화를 제외하고는 내부에서 수행하지 않는다.

 

PlayerContorller의 내부

 

 


다른 상태에 따른 활용도 가능

'기타 > 디자인패턴' 카테고리의 다른 글

[디자인 패턴]MVP  (0) 2024.05.21
[디자인 패턴]Observe  (0) 2024.05.21
[디자인 패턴] Command  (0) 2024.05.21
[디자인 패턴] ObjectPool  (0) 2024.05.19
[디자인 패턴] Factory  (0) 2024.05.19
Contents

아핫

땡큐하다