
멀티플레이어 게임 제작시 변수들을 클라이언트와 동기화 하기 위한 시스템 중 'Property Replication'에 대해 복습하였다.
UPROPERTY(Replicated)로 선언된 변수는 서버 값이 바뀔 때 클라이언트에 자동으로 전달UPROPERTY(Replicated)
int32 Health;
//→ 서버에서 Health 값이 변경되면 클라이언트에 자동 반영
void AMyActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyActor, Health);
}
//→ 어떤 프로퍼티를 복제할지 지정하는 핵심 함수
조건부 Replication

COND_OwnerOnly, COND_SkipOwner 같은 조건을 통해 특정 클라이언트에게만 값 전달 가능

예: 플레이어 본인에게만 체력 UI 업데이트
UPROPERTY(ReplicatedUsing=OnRep_Health)
int32 Health;
UFUNCTION()
void OnRep_Health()
{
UpdateHealthUI();
}
//→ 값이 클라이언트에 업데이트될 때 특정 로직 실행 가능.
Replicated 옵션을 켜고, OnRep 이벤트를 활용해 UI나 애니메이션을 동기화할 수 있음📝 정리: 언리얼 엔진에서 Property Replication은 멀티플레이 게임의 핵심 동기화 메커니즘, UPROPERTY(Replicated)와 GetLifetimeReplicatedProps, 그리고 OnRep 함수를 적절히 활용하면 서버 권위 구조를 유지하면서도 클라이언트에 일관된 게임 경험을 제공할 수 있음