1.4 - 변수 리플리케이션 [RepNotify]

Network Feature 예제 레벨에 대한 개요로, 예제 1.4: Variable Replication, RepNotify 입니다.

Windows
MacOS
Linux
On this page

1_4.png

서버클라이언트 시점 모두를 확인하기 위해서는, Play (플레이) 드롭다운 아래 Number of Clients (클라이언트 수) 칸을 2 로 설정합니다.

종종 리플리케이트되는 변수값의 변화에 따라 일정한 로직을 실행하는 것이 바람직합니다. RepNotify 마킹된 변수에는 값이 변할 때마다 네트워크 오소리티와 원격 머신 양쪽에서 자동으로 호출되는 특수 함수가 있습니다.

이 예제에서 네트워크 오소리티는 RepNotify 변수를 사용해서 가로등의 색을 나타내는 스칼라 변수에 대한 변화를 제어합니다. 값이 변하면 자동 생성되는 OnRep 함수가 호출되며, 이 예제에서는 머티리얼 파라미터를 업데이트합니다.

블루프린트 분석

(아래 그림과 같은) BP_Stoplight_Variable_RepNotify 블루프린트의 이벤트 그래프에서, 라이트 스위치 로직 처리를 위해 네트워크 오소리티에서만 호출되는 스크립트 호출을 확인할 수 있습니다. 라이트의 상태를 나타내는 Streetlight Scalar 변수는 RepNotify 마킹되어 있어, 그 값이 변하면 클라이언트와 서버 양측에서 OnRep_StreetlightScalar 함수가 호출됩니다.

클릭하면 크게 볼 수 있습니다.

그리고 OnRep_StreetlightScalar 함수는 가로등의 비주얼 업데이트가 모든 머신에서 작동하도록 처리합니다.

변수에 대한 RepNotify 설정은 Replication 드롭다운 메뉴 아래 변수의 디테일 패널에서 가능합니다.

1_4_RepNotify.png

이 셋업이면 게임 플레이시 가로등에 대해 클라이언트와 서버 양쪽에서 같은 시퀀스가 실행되는 것을 확인할 수 있습니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback