기타/디자인패턴
[디자인 패턴] State
Krapboss
2024. 5. 21. 19:21
[출처]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의 내부를 나타낸다.
각 상태에 대한 생성과 변경, 업데이트 동작을 수행한다.
현재 Idle 정의된 동작을 실행한다.
실제 동작에 대한 변경도 PlayerController에서 수행하는 것이 아닌 참조된 PlayerController 바탕으로 변경된다.
PlayerController 내부 에서는 StateMachine을 생성 후 자신에 대한 참조값을 전달한다.
상태 변경도 초기화를 제외하고는 내부에서 수행하지 않는다.
다른 상태에 따른 활용도 가능