1.3 - 변수 리플리케이션

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

Choose your operating system:

Windows

macOS

Linux

1_3.png

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

게임플레이에 중요한 변수는 오직 네트워크 오소리티(서버)에서만 수정되어야 하며, 그 사실을 알 필요가 있는지 여부에 따라 원격 머신(클라이언트)에 리플리케이트시켜야 합니다.

이 예제에서 유령의 생명력은 네트워크 오소리티에만 있는 타이머에 따라 수정되고 있습니다. 리플리케이트되지 않는 유령의 경우, 원격 머신은 생명력 업데이트를 받지 못합니다. 리플리케이트되는 유령의 경우, 서버에서 생명력이 변할 때마다 업데이트를 받습니다.

블루프린트 분석

BP_Ghost_Variable_Replication_None 블루프린트의 (아래 그림과 같은) 이벤트 그래프에서, (매 3초마다 발동되는 타이머를 통해) 서버에서만 발생하는 Initialize Health Update Health 둘 다 호출하는 것을 볼 수 있습니다.

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

또한 변수 값 확인을 위해 매 틱마다 유령의 생명력 텍스트가 표시됩니다. 그러나 이 블루프린트의 경우, Health 에 대한 변수는 리플리케이트 설정되지 않아 변수 값은 항상 그대로 유지됩니다.

(아래 그림과 같은) BP_Ghost_Variable_Replication_Enabled 이벤트 그래프에서, 위와 비슷한 셋업이지만 Health 변수가 리플리케이트 설정된 것을 볼 수 있습니다.

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

Health 변수에 대한 리플리케이션을 켜는 것은 아래와 같이 변수의 디테일 패널에서 체크박스를 통해 가능합니다.

1_3_Rep_Variables.png

변수에 리플리케이트 설정을 하면 이 블루프린트는 아래 게임플레이 예제에서 보듯이 서버에서 이루어지는 변수 업데이트를 받게 됩니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기