inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

OnRep 함수 안에서 Authority 체크

해결된 질문

184

king

작성한 질문수 10

0

7강 실습 중 OnRep_ServerLightColor 함수 내에서 아래 코드와 같이 Authority를 체크하셨는데, OnRep 함수는 클라이언트에서만 실행되는것이 보장되기 때문에 별도의 Authority 체크 없이 클라이언트 사이드 코드를 작성해도 되는 것으로 이해하고 있었습니다.

이 경우에는 BeginPlay 서버 쪽에서 명시적으로 OnRep_ServerLightColor() 함수를 호출하고 있기때문에 특별히 Authority를 체크해준 것이고, 기본적으로 OnRep 함수는 클라이언트에서만 호출되는 것이 보장된다고 이해해도 괜찮을까요?

image.png

 

unreal-engine 네트워크 언리얼-c++

답변 2

0

이득우

네 잘 이해하셨습니다.

 

0

king

감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 28님.

언리얼 엔진의 RepNotify (OnRep) 함수는 변수의 값이 변경될 때 클라이언트에서 호출되는 것이 보장됩니다. 따라서 기본적으로 OnRep 함수는 클라이언트 측에서만 동작한다고 이해하셔도 무방합니다. 그러나, 특정 상황에서 서버 측에서 이 함수를 직접 호출할 수도 있기에, HasAuthority()로 체크하는 것은 안전을 위한 추가적인 검사라고 볼 수 있습니다.

특히, 서버에서 OnRep 함수를 호출하거나 다른 코드에 의해 의도치 않게 서버에서 이 함수가 호출될 상황을 대비하기 위해 Authority 체크를 추가하는 것이 일반적으로 권장됩니다. 이로 인해 코드를 보다 명료하게 유지할 수 있고, 개발하는 동안 발생할 수 있는 예기치 못한 상황을 방지할 수 있습니다.

비슷한 내용으로 언리얼 엔진의 네트워크 관련된 여러 동작 방식에 대해 여쭤보신 분들이 있으니 아래의 참고 자료들을 확인하시면 도움이 될 것입니다:

위의 질문들에서는 클라이언트에서 함수 실행 시점과 RPC 및 OnRep 함수 차이에 대해 설명하고 있습니다. 이를 통해 네트워크에서의 함수 호출 동작을 보다 명확하게 이해하실 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

5.6버전 Networking Insights 실행안됨 문제에 관하여

0

29

1

8강 중간, 분수대의 SetOwner 에 대해 궁금합니다.

0

77

2

플레이어(Actor) 로 (리슨)서버에서 생성 되나요?

0

99

2

2강) HandleBeginPlay 의 역활이 궁금합니다.

-1

72

2

3강 중간, 모드 로그로 찍을 시 스탠드얼론이 안찍힙니다.

1

76

2

CompressedFlag 질문

0

58

2

10강까지 머리 위 체력바가 표시가 안됩니다.

0

109

3

10강까지 머리 위 체력바가 표시가 안됩니다.

0

95

2

16:44 부분에서 질문이 있습니다.

0

104

2

12:50 NetMulticast RPC 커넥션 관려하여 질문이 있습니다.

0

121

2

github 3-5 파트 프로젝트에서 컴파일 에러가 발생합니다.

0

116

3

언리얼 인사이트 5.6버전 networking insights 가 뜨지 않습니다.

0

164

3

Insight 사용이 안되어서 문의 드립니다!

0

130

2

하위 레벨...?? High Level 말씀하신거죠..??

0

147

1

CompressedFlags를 이용한 InputThrottle, InputSteering 전달 방법 질문

0

191

1

조건식 프로퍼티 리플리케이션 질문

0

144

2

ArenaBattle에 Log추가하는 곳에 에러가 나타나 질문 드립니다.

0

160

2

7강에서 DORM_Initial 안됨

0

128

3

안녕하세요 강의 내용 정리에 관련해서 질문있어요

0

131

2

캐릭터 클래스의 mesh 관련

0

132

2

3파트 6강 분수대 로테이트에 문제가 생겼습니다.

0

131

3

클라이언트의 오너십 설정에 대해서 궁금합니다.

0

201

3

프로퍼티 리플리케이트 동기화 보장 개념.

0

225

2

결국엔 액터 기본함수들은 어디든 똑같이 일단 실행되는건가요?

0

93

2