언리얼에서 네트워크 플레이 중에 액터는 4가지 역할 중 1개를 한다.
4가지는 다음과 같다.
- ROLE_Authority
- ROLE_AutonomousProxy
- ROLE_SimulatedProxy
- ROLE_None
내 표현으로 쉽게 설명해보겠다. (지피티 도움 살짝 받음)
1) ROLE_Authority
- 축구 경기에서 심판 역할! -> 서버에서 모든 걸 결정하는 역할임
- 서버가 플레이어 체력을 줄일지 말지 결정
if (GetLocalRole() == ROLE_Authority)
{
// 나는 서버니까 체력 깎기 가능!
PlayerHealth -= 10;
}
2) ROLE_AutonomousProxy
- 축구 경기에서 주장 역할!
- 클라지만 본인 행동을 서버 보다 먼저 실행할 수 있음
- 내 캐릭터가 점프할 때 서버 보다 먼저 점프 보여줌 (입력 지연 방지)
if (GetLocalRole() == ROLE_AutonomousProxy)
{
// 클라이언트지만 내 움직임을 바로 실행!
MoveForward();
}
3) ROLE_SimulatedProxy
- 일반 선수 역할
- 클라가 직접 조정하지 않는 다른플레이어의 캐릭터 역할
- 서버가 보내주는 내용만 따라감
if (GetLocalRole() == ROLE_SimulatedProxy)
{
// 서버에서 받은 정보대로 움직이기만 함!
UpdatePositionFromServer();
}
4) ROLE_None
- 멀티에선 보통 안 씀
- 즉 싱글플레이일 때 쓰거나 네트워크 접속했지만 역할 안 정해졌을 때 씀
if (GetLocalRole() == ROLE_None)
{
// 나는 네트워크에 없는 것과 같음.
ShowSpectatorMode();
}
'언리얼엔진' 카테고리의 다른 글
언리얼 에디터에서 피봇 위치 바꾸기 (0) | 2025.03.05 |
---|---|
RPC가 뭘까? 그리고 RPC의 종류 3가지 (0) | 2025.03.05 |
유틸리티 에디터 만들기 (0) | 2024.09.25 |
메시 Collision 기초 (1) | 2024.08.18 |
[UE5.3] 블레이드 회전 시키기 / 머티리얼인스턴스 Value 수정하기 (1) | 2024.08.11 |