인프런 커뮤니티 질문&답변

진정하라고친구님의 프로필 이미지

작성한 질문수

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

클라이언트에서 RPC함수 실행 시점

23.11.02 18:45 작성

·

214

·

수정됨

0

안녕하세요

 

어떤 액터의 내부에 다음과 같은 선언이 있고

UPROPERTY(ReplicatedUsing=OnRep_Val)

float Val;

 

void OnRep_Val();

 

Val의 값이 서버에서 변경이 되면 클라이언트에서 OnRep_Val()함수가 실행될텐데

OnRep_Val함수가 클라이언트에서 실행되는 순서가 궁금합니다.

예를 들면 클라이언트의 Tick함수가 다 실행이 된 후에 OnRep_Val함수가 실행되는 건지

아니면 클라이언트의 Tick함수가 실행되는 동시에 별도의 쓰레드를 생성해서

동시에 OnRep_Val함수가 실행되는 건지 궁금해요

 

마찬가지로 Server, Client, NetMulticast로 작성된 함수들의 실행방식도요

답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

2023. 11. 02. 22:26

조금 더 강의를 들으시면 이해가 되실 것 같습니다만, 우선 답변을 드리면
언리얼 엔진의 네트웍은 월드에 등록된 넷드라이버를 통해 처리되는데, 일반적으로는 IP기반의 IpNetDriver를 사용합니다.
이렇게 설정된 상황에서 월드는 틱 함수에서 네트웍과 액터의 틱을 처리하는데, 네트웍의 틱 처리를 먼저 합니다.
아래 소스코드의 함수를 살펴보면 네트웍 > 물리 > 틱 오브젝트 순으로 진행되는 것을 확인할 수 있습니다.
( 소스코드 탐색은 Ctrl+Shift+F )

void UWorld::Tick( ELevelTick TickType, float DeltaSeconds )