-
RPC 콜 호출 시 유의할 점언리얼 2023. 11. 23. 11:04
Add New Player HMD는 Run on owning Client 되는 RPC 호출 이벤트이다.
RPC 호출은 네트워크를 타고 호출되는 이벤트이기 때문에
반복문을 활용해서 여러번 호출해 줄 경우, 제대로 수신이 되지 않는 오류가 발생할 수 있다.
따라서 배열 자체를 넘겨주는 아래의 코드로 수정해주는 것이 좋다.
이후, RPC 호출되는 이벤트 자체에서 반복문을 수행해주는 것이 맞다.
SetOwner 지정은 서버를 통해서 해주자!
=> RPC 콜의 OnServer 든 Authority 체크의 Authority로 호출해주든!
서버 내에서 Set Owner 해주는 것이 맞다.
오너 지정이 필요한 이유
-> RPC 호출 시, Execute All 수행 외에 다른 RPC 콜 지정해 주는 경우
오너를 지정해주지 않았을 때, 문제를 일으킬 소지가 있다.
오너를 지정해주지 않는 경우, 모든 액터는 서버에서 소유권을 갖고 있기 때문이다.
https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Networking/Actors/OwningConnections/
액터와 그 접속 소유
멀티플레이어에서 서버의 역할에 대한 개요입니다.
docs.unrealengine.com
위젯에서 이벤트 디스패처를 통해 이벤트를 바인딩 해줄 경우 유의할 점이 있다.
이벤트 바인딩은 로컬에서만 수행되기 때문에 Set Owner로 오너 지정 후,
바인딩된 이벤트의 호출을 서버로 넘겨준 뒤, 서버를 통해 Execute All 하는 이벤트를 호출해줘야 한다.
바인딩 되어 있는 이벤트 '언리얼' 카테고리의 다른 글
에디터 상에서 메시 사이즈 변경 (0) 2023.11.29 네트워크 리플리케이트 액터 트랜스폼 싱크 맞추기 (0) 2023.11.29 위젯 컴포넌트로 적용된 위젯의 투명도 적용 (2) 2023.11.21 fatal error log 확인 (0) 2023.11.20 특정 오브젝트에 피직스 세부값 부여하기 (0) 2023.11.09