본문 바로가기
언리얼엔진

RPC가 뭘까? 그리고 RPC의 종류 3가지

by 송파감자 2025. 3. 5.

RPC 리모트 프로시져 콜

로컬에서 호출될 수 있지만 다른 컴에서 실행되는 함수

=> 이해가 좀 어려우나, 쉽게 풀어보면 멀티겜에서 서버와 클라가 대화하는 방법

===================================

 

RPC를 호출하려면

  • 액터가 함수 호출해야 하고,
  • 해당 액터가 복제되어야 함!
  • 함수는  UFUNCTION으로 지정되어 있어야 함!

 

===================================

 

종류는 총 3가지가 있음

  • Sever RPC
  • Client RPC
  • NetMulticast RPC

각각 쉽게 비유해보겠다

1) ServerRPC

클라의 오브젝트가 함수 호출/ 서버만 함수 실행

학생(클라)이 쌤(서버)한테 쌤 저 숙제(클라가 소유한 것)했어요!  쌤은 오케이 알겠다

-> 총쏘기, 아이템 줍기 했다고 서버에게 알릴 때

 

2) ClientRPC

서버의 오브젝트가 함수 호출/ 특정 클라에서 실행

쌤(서버)이 나(클라)한테만 가비야, 너 숙제 잘했더라?

-> 특정 클라에게만 메시지 전달할 때 씀

 

3) NelMulticastRPC

서버의 오브젝트가 함수 호출/ 모든 클라에서 실행

쌤(서버)이 모든 학생(모든 클라)에게 얘들아 내일 시험 준비 잘 해와~

->  전체 플레이어가 알아야하는 효과 줄 때

 

===================================

 

RPC는 비신뢰성을 디폴트로 함.

-> 함수 호출이 목적지에 도달할 수 도 안 할 수 도 있다는 뜻!

꼭 도달하게 하려면 아래와 같이 Reliable 키워드 사용해야 함!

 

UFUNCTION(Client, Reliable)

void DoSomethingReliably_Client();

 

===================================