본문으로 건너뛰기
Unreal Engine 멀티플레이LESSON 07

Authority, Role, 로컬 플레이어 판별하기

난이도입문 → 초급
예상 시간65분
선수지식6강의 NetMode 로그

7강. Authority, Role, 로컬 플레이어 판별하기

1. 이번 강의에서 해결할 문제​

리슨 호스트 Character는 Authority이면서 Locally Controlled입니다. 원격 클라이언트의 자기 Character는 Authority가 아니지만 Autonomous Proxy이고 Locally Controlled입니다. HasAuthority()를 로컬 플레이어 판별처럼 사용하면 원격 클라이언트 입력과 UI가 동작하지 않습니다.

2. 학습 목표​

3. 핵심 개념​

질문API대표 사용
이 Actor 복사본이 권위 있는 서버 원본인가HasAuthority()데미지·Spawn·점수 변경
이 복사본의 로컬 네트워크 역할은 무엇인가GetLocalRole()진단, Autonomous/Simulated 분기
이 Pawn을 이 머신의 로컬 플레이어가 제어하는가IsLocallyControlled()입력, 카메라, 로컬 HUD
이 Controller가 로컬 Controller인가IsLocalController()UI 생성과 입력 매핑

Authority는 “내가 이 Actor의 정답을 결정하는가”이고 Ownership은 “어느 연결과 연결돼 RPC 대상이 되는가”입니다. 서버가 모든 Actor에 Authority를 가져도 각 Actor를 특정 클라이언트가 소유하는 것은 아닙니다.

4. 단계별 실습​

CaptureArenaCharacter.cpp
void ACaptureArenaCharacter::BeginPlay()
{
Super::BeginPlay();

if (HasAuthority())
{
InitializeAuthoritativeCombatState();
}

if (IsLocallyControlled())
{
InitializeLocalInputAndCamera();
}

if (GetLocalRole() == ROLE_SimulatedProxy)
{
InitializeRemotePresentation();
}

UE_LOG(LogTemp, Display,
TEXT("Character=%s Authority=%d Local=%d LocalRole=%s RemoteRole=%s"),
*GetName(), HasAuthority(), IsLocallyControlled(),
*UEnum::GetValueAsString(GetLocalRole()),
*UEnum::GetValueAsString(GetRemoteRole()));
}
관찰 위치자기 Character상대 Character
리슨 호스트Authority + LocalAuthority, 보통 Local 아님
원격 클라이언트Autonomous Proxy + LocalSimulated Proxy
데디케이티드 서버Authority, Local 아님Authority, Local 아님

PIE에서 세 위치의 로그를 실제 표와 대조합니다. Actor 종류와 Possess 시점에 따라 초기 프레임 결과가 달라질 수 있으므로 PossessedBy, OnRep_Controller와 BeginPlay 로그도 비교합니다.

5. 코드가 동작하는 이유​

규칙 초기화는 서버 원본에서만 실행되어 중복 상태를 막습니다. 입력과 카메라는 로컬로 제어되는 Pawn에서 실행되어 리슨 호스트와 원격 클라이언트 모두 지원합니다. Simulated Proxy는 입력을 만들지 않고 서버 이동 결과를 표현합니다. 한 Actor에서 조건들이 상호 배타적이라고 가정하지 않는 것이 중요합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Authority, Role, 로컬 플레이어 판별하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Authority, Role, 로컬 플레이어 판별하기” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2“Authority, Role, 로컬 플레이어 판별하기”에서 ‘BeginPlay에서 Controller가 항상 준비됐다고 가정’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

7강. Authority, Role, 로컬 플레이어 판별하기 미완료 상태