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

이준석님의 프로필 이미지
이준석

작성한 질문수

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

character와 controller의 onrep_playerstate

해결된 질문

작성

·

156

·

수정됨

0

 

character와 controller 모두 onrep_playerstate 함수를 사용하고 있습니다.

 

 

지금 제 코드는 controller의 onrep_playerstate 에서는 playerstate를 초기화하고, playerstate 안에 변수 값들을 HUD에 바인드 하고 있고

character의 onrep_playerstate 에서는 playerstate의 변수 안에 값을 넣는 상황인데

controller->character라는 기존의 프레임워크 실행 순서와는 다르게

onrep_playerstate 함수가 리슨서버의 클라이언트 입장에서 매번 실행 순서가 뒤바뀌는 경우가 발생합니다.

 

 

이유를 찾아보니 playerstate를 서버에서 클라이언트로 리플리케이트하는데 매번 지연속도가 다르다고 하는 것 같은데

 

이럴 경우는 어떻게 해야할까요? settimer를 사용하는 방법은 지양되는 방식이라는 의견이 많아서 다른 해결방법을 모르겠습니다.

답변 1

0

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

네 기본적으로 PlayerState의 NetUpdate Frequency와 Priority 수치가 낮게 설정되어 있어 늦게 전송되는 특징이 있습니다. 일단 PlayerState 중심으로 리플리케이션 정보를 전달한다면 이를 높이는 방법이 고려해야 될 것으로 보입니다.

그런데 클라이언트에서도 컨트롤러 -> 캐릭터의 순서가 지켜져야 하는 이유가 있을까요?

클라이언트의 경우 PostNetInit에서 전달받은 기본 값으로 초기 세팅을 처리하고, OnRep_PlayerState을 통해 갱신되면 새로운 값이 반영되도록 설계되어야 하지 않나 싶습니다.

이준석님의 프로필 이미지
이준석

작성한 질문수

질문하기