유니티 릴레이
유니티에서 제공하는 멀티플레이어 게임용 네트워크 인프라 서비스 중 하나로, NAT(Network Address Translation)나 방화벽 등의 이유로 플레이어들끼리 직접 연결(P2P, Peer-to-Peer)할 수 없을 때, 중간 서버를 통해 데이터를 중계해주는 서비스입니다.
Unity의 Unity Gaming Services (UGS) 플랫폼의 일부로 작동하며, Unity Transport와 연동되어 사용됩니다.
https://docs.unity.com/ugs/ko-kr/manual/relay/manual/integration
Relay 연동
Relay 연동# Relay는 Unity 생태계의 일부로, Lobby, Unity Authentication, Unity Transport 패키지, Netcode for GameObjects, Mirror Networking API 등 여러 Unity 제품과 원활하게 연동됩니다. 참고: 당분간 Unity Relay SDK는 UTP(Un
docs.unity.com
🎮 게임에서의 프록시 = 릴레이 서버
게임에서는 "프록시 서버"라는 말을 잘 안 쓰고, 그 역할을 하는 걸 "릴레이 서버"라고 해.
- 플레이어 A ↔ 릴레이 서버 ↔ 플레이어 B
- A와 B는 서로의 IP를 몰라도 되고, 방화벽도 우회 가능
즉, 릴레이 서버가 프록시(대리인, 중간자 시스템 또는 서버) 역할을 하는 거야.
🎯 주요 기능
| ✅ NAT 우회 | NAT 및 방화벽이 있어도 연결 가능하게 중계 |
| ✅ 호스트-클라이언트 구조 지원 | 호스트가 릴레이를 통해 클라이언트를 연결 |
| ✅ UTP(Unity Transport Package) 통합 | UTP를 통해 릴레이 네트워크 구현 가능 |
| ✅ UGS 인증 연동 | Unity의 Authentication 서비스와 함께 사용 |
| ✅ 서버 유지비 절감 | 전용 서버가 필요 없는 구조로 운영비 절감 가능 |
🧩 동작 방식
- 호스트 생성
- 게임에서 한 명의 플레이어가 호스트가 되며, Relay 서버에 할당 요청을 보냅니다.
- Relay 서버는 호스트에게 Join Code를 발급합니다.
- 클라이언트 연결
- 다른 플레이어(클라이언트)는 이 Join Code를 사용하여 Relay 서버를 통해 호스트에 연결합니다.
- 데이터 중계
- Relay 서버는 양쪽 데이터를 중계하여 NAT나 방화벽을 우회함으로써 실시간 통신이 가능하도록 합니다.
📦 필요 패키지
- Unity Transport (UTP)
- Relay SDK (com.unity.services.relay)
- Authentication SDK (옵션, 보안 연동을 위해 권장)
📌 사용 예시
// 호스트 생성 예시
Allocation allocation = await RelayService.Instance.CreateAllocationAsync(maxPlayers);
string joinCode = await RelayService.Instance.GetJoinCodeAsync(allocation.AllocationId);
// 클라이언트 연결 예시
JoinAllocation joinAllocation = await RelayService.Instance.JoinAllocationAsync(joinCode);
🚫 제한사항
- 고용량 데이터에는 부적합 (Relay 서버는 단순 중계만 하므로 지연이나 속도 제한 있음)
- PvP나 소규모 협동 게임에 적합
- 대규모 MMO 등에는 Dedicated Server 사용이 더 적합
🧠 언제 쓰면 좋을까?
- 플레이어 간 연결이 중요한 협동 게임(Co-op), P2P 기반 게임
- NAT 문제로 직접 연결이 어려운 환경
- 서버 비용을 최소화하면서 멀티플레이를 구현하고 싶을 때
Unity > Edit > Services > Members > Dashboard를 누르면 웹에서 해당 프로젝트의 대시보드가 열린다.
프로젝트 > (프로젝트이름) > 서비스 > Multiplay Hosting, Matchmaker, Lobby, Relay 실행
Unity > Window > Package Manager에서 Relay 패키지를 설치 (com.unity.services.relay)

UnityTransport 컴포넌트에서 Protocol Type 속성을 변경한다.
게임을 호스트할 때는 RelayUnityTransport를 활용하고, 매치메이킹(대전)을 진행할 때는 UnityTransport를 사용한다.
UGS는 일정 한도에 도달하기까지는 Free Plan으로 이용할 수 있다.
- Free Plan 한도를 초과하면 자동으로 전환됨.
- 이때 결제 수단 등록이 필요하며, 등록된 다음부터는 무료 범위를 넘어선 사용분에 대해 요금이 청구된다.
https://unity.com/kr/products/gaming-services/pricing
UGS 가격
게임 출시, 관리, 운영에 필요한 모든 기능을 합리적인 가격에 이용하실 수 있습니다. UGS 제품은 AAA 스튜디오부터 인디 개발사에 이르는 모든 고객을 지원합니다.
unity.com