Replication

변수 복제와 OnRep 도착 순서

서버 값이 바뀌었다고 즉시 모든 클라이언트가 같은 프레임에 보는 것은 아니다. 복제 조건, 네트워크 우선순위, OnRep 처리를 구분해야 한다.

01

서버 변경

Authority가 있는 서버 인스턴스에서 Replicated 변수를 바꾼다.

source
02

수명 등록

GetLifetimeReplicatedProps의 DOREPLIFETIME 설정이 대상 필드를 등록한다.

lifetime
03

조건 필터

Owner Only, Skip Owner 같은 조건이 클라이언트별 전송 여부를 결정한다.

condition
04

패킷 반영

클라이언트가 새 값을 수신해 로컬 변수에 적용한다.

receive
05

OnRep 실행

ReplicatedUsing 함수에서 UI, 이펙트, 캐시를 갱신한다.

notify

서버 호출 · 초기값 · 조건부 복제 점검

서버 호출 OnRep는 보통 클라이언트 수신 시점의 반응이므로 서버 로직과 혼동하지 않는다.
초기값 처음 스폰될 때 이미 같은 값이면 기대한 OnRep가 호출되지 않을 수 있다.
조건부 복제 Owner 조건을 잘못 쓰면 다른 플레이어에게 필요한 정보가 보이지 않는다.