728x90
반응형
- 개요
RPC는 언리얼 엔진에서 멀티 플레이어 게임을 위한 네트워크 통신 방법 중 하나입니다.
Actor를 대상으로 로컬에서 함수를 호출하여 원격에서 함수를 수행하는 기능을 의미합니다.
단방향으로만 이뤄지는 Replication과 다르게 양방향으로 이뤄질 수 있다는 장점이 존재합니다.
1) RPC를 사용할 때의 주의사항
RPC는 Actor를 대상으로 동작하며 로컬에서 대상의 함수를 호출하고 원격에서 대상의 함수를 수행합니다.
이때 대상이 되는 Actor의 인스턴스는 로컬과 원격 모두에서 존재해야 합니다.
따라서 GameMode와 같이 한쪽에서만 존재하는 클래스에서는 RPC를 수행하지 말아야 합니다.
2) RPC에서의 ActorChannel

RPC도 Replication과 동일하게 ActorChannel을 통해 동작합니다.
CosmeticActor와 같은 특수한 경우가 아닌 이상, Actor의 생성과 삭제는 서버에서 이뤄집니다.
이때 생성된 Actor에 대한 Ownership은 서버가 소유하지만 SetOwner와 같은 방법을 사용하여 런타임 시점에서
해당 Actor의 소유권을 변경할 수 있으므로 서버 -> 클라이언트와 클라이언트 -> 서버의 RPC 모두 가능합니다.
- RPC 최종 정리
RPC를 동작하는 방식 별로 다음과 같이 정리할 수 있습니다.
- RunOnServer RPC : 클라이언트에서 서버로 RPC 수행, 로컬 클라이언트가 소유한 Actor에서만 호출가능
- RunOnOwningClient RPC : 서버에서 클라이언트로 RPC 수행, 해당 Actor를 소유한 클라이언트에만 전송
- Multicast RPC : 서버에서 모든 클라이언트 + 서버 자신을 포함하여 RPC 수행
- 모든 클라이언트에 해당 Actor가 복제되어 있어야 전체 전송
- Relevancy를 통해 상황에 따라 모든 클라이언트를 대상으로 할지, 일부 클라이언트를 대상으로 할지 결정
728x90
반응형
'언리얼 엔진 > 언리얼 엔진 이모저모' 카테고리의 다른 글
| Replication 심화 (0) | 2025.09.21 |
|---|---|
| 소유권(Ownership) (0) | 2025.09.21 |
| RPC(Remote Procedure Call) (0) | 2025.09.21 |
| 플레이어 인덱스 (0) | 2025.09.18 |
| 서버와 클라이언트의 구분 방법 (0) | 2025.09.18 |