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 |