UE5는 중앙서버가 자신의 정보를 접속한 클라이언트들에게 복제하는 방식으로 구현됨.
Authority를 통해 서버 권한인지 확인 후, 계산을 하고 클라이언트들로 그 결과를 복제(준다)한다.
void AMovingPlatform_B::Tick(float DeltaTime) { //서버의 권한인가?, 서버에서 실행하나? //!HasAuthority일경우 클라이언트의 권한. if (HasAuthority()) { //이동 FVector Location = GetActorLocation(); Location += mSpeed * DeltaTime; //위치 변경 SetActorLocation(Location); } } Tick마다 서버의 권한일경우만 (오소리티가 있는경우?) 해당 액터를 옮기는것을 계산함.
void AMovingPlatform_B::BeginPlay() { Super::BeginPlay(); //서버의 권한일경우 if (HasAuthority()) { //이 액터가 네트워크 클라이언트에 복제할지 여부를 설정합니다. SetReplicates(true); //이 액터의 움직임이 네트워크 클라이언트에 복제되는지 여부를 설정합니다. SetReplicateMovement(true); } } 해당 액터 생성자에서 오소리티가 있는경우 SetReplicates, SetReplicateMovement를 통해 복제 및 이동 결과를 클라이언트로 복제한다.
'unreal engine' 카테고리의 다른 글
| [언리얼엔진] C++로 컴포넌트 생성하기 (0) | 2022.07.10 |
|---|---|
| [언리얼엔진] Gizmo로 FVector 이동, 월드좌표로 변환 (0) | 2022.07.09 |
| [언리얼엔진] 클라이언트 - 서버 모델, 커맨드로 언리얼 실행 (0) | 2022.07.09 |
| [언리얼엔진] C++에서 메뉴 탐색하기 (0) | 2022.03.06 |
| [언리얼엔진] 위젯 스위처를 지닌 서브 메뉴 (0) | 2022.03.06 |