본문 바로가기
언리얼엔진

액터의 롤 4가지

by 송파감자 2025. 3. 5.

언리얼에서 네트워크 플레이 중에 액터는 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();
}