프로퍼티가 일단 리플리케이션 등록되면 해제시킬 수 없습니다 (여기서 평생이라는 부분이 나옵니다). 그 이유는 가급적 많은 정보를 구워넣어서, 같은 프로퍼티 세트에 대해 다수의 접속에서 작업물 공유의 이점을 활용할 수 있도록 하기 위함입니다. 그러면 계산 시간이 많이 절약됩니다.
그러면 이 프로퍼티 리플리케이트 여부를 어떻게 미세 조정할까요? 여기서 조건형 프로퍼티가 등장합니다.
기본적으로 리플리케이트되는 각 프로퍼티에는 조건이 내장되어 있는데, 변경되지 않은 경우 리플리케이트하지 않는다는 것입니다.
프로퍼티 리플리케이션에 대한 세밀한 제어를 위해, 부차적인 조건을 추가시킬 수 있는 특수 매크로가 있습니다.
이 매크로는 DOREPLIFETIME_CONDITION
라 합니다. 그 사용법 예제는 다음과 같습니다:
void AActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps)
const
{
DOREPLIFETIME_CONDITION(AActor, ReplicatedMovement, COND_SimulatedOnly);
}
조건 매크로에 전달된 COND_SimulatedOnly
플래그는 이 프로퍼티의 리플리케이션 여부를 고려하기도 전에 추가 검사를 하도록 합니다. 이 경우, 이 액터의 시뮬레이션 사본이 있는 클라이언트에만 리플리케이트합니다.