Class GameDev* SheepAdult

[Unreal Engine 5] Unreal Delegate & RelicatedUsing & Observer Pattern 본문

Unreal Engine

[Unreal Engine 5] Unreal Delegate & RelicatedUsing & Observer Pattern

SheepAdult 2023. 7. 23. 17:14

 언리얼에서의 딜리게이트는 사용하면서부터 쭉 옵저버 패턴이라고 생각해왔고 확인 결과 옵저버 패턴이 맞았다. 그런데 ReplicatedUsing 또한 특정 행위가 발생하면 특정 함수가 호출이 되는 것이고, 그로 인해 액터에 대한 정보 업데이트가 이루어지는 것이니 옵저버 패턴인지 아닌지 궁금해졌다.

 

 그리고 알아 본 결과 ReplicatedUsing은 옵저버 패턴이 아니었다. ReplicatedUsing은 멀티 플레이 환경에서 서버와 클라이언트 간에 상태를 동기화할 때 사용한다. Replicate된 변수가 서버에서 변경이 된다면 바인딩 된 클라이언트의 함수를 호출하는 방식으로 이루어진다.

 

 즉, ReplicatedUsing은 디자인 패턴이라기 보다는 네트워크 기능으로 분류되며, Replicate선언 된 변수가 서버에서 변경되면 클라이언트 측에 동기화 하기위하여 사용되는 것이고, 옵저버 패턴은 객체 간의 이벤트 통지와 업데이트가 이루어질 수 있도록 하는 것이다.

 

+ 언리얼에서 나도 모르게 사용하고 있을 만한 디자인 패턴에 뭐가 있을까 하고 알아보니..

- 블루프린트 & BehaviorTree: 데코레이트 패턴

- 애니메이션 간선 그래프: 스테이트 패턴

등이 있다.