RPC란?

  • Remote Procedure Call의 약자로, 한 컴퓨터에서 호출된 함수가 네트워크를 통해 다른 컴퓨터에서 실행되도록 하는 기술
  • 언리얼에서는 주로 서버와 클라이언트 간의 통신을 위해 사용

RPC의 종류

  • Server: 클라이언트에서 호출 → 서버에서 실행
UFUNCTION(Server)
void ServerFunction();
  • Client: 서버에서 호출 → 특정 클라이언트에서 실행
UFUNCTION(Client)
void ClientFunction();
  • NetMulticast: 서버에서 호출 → 서버와 모든 클라이언트에서 실행
UFUNCTION(NetMulticast)
void MulticastFunction();

주의할 점

  • RPC는 오너십(Ownership)에 따라 실행 위치가 결정. 예를 들어, 클라이언트가 소유한 액터에서 서버 RPC를 호출하려면 해당 액터가 서버에 의해 인식되어야 함.
  • 데이터 크기 제한 : 언리얼은 내부적으로 데이터를 Bunch 단위로 쪼개어 전송하므로 큰 데이터도 처리 가능하지만, 너무 큰 RPC 호출은 성능에 영향을 줄 수 있음.

느낀점

PRC 개념이 적용되면 코드를 작성하는데 많이 복잡할 것이다. 각 상태별 의미하는 것이 무엇인지 확실히 이해할 필요가 있다.

profile
🕹️🎮🍱✈️📸 안녕하세요! 게임개발에 도전하고 있습니다!

0개의 댓글