<aside>
💡 Actor의 기본 Replicates == false
Pawn의 기본 Replicates == true
Character의 기본 Replicates == true
</aside>
<aside>
💡 HasAuthority()
는 GetLocalRole() == ENetRole::ROLE_Authority
와 같다.
클라이언트의 LocalRole이 Authority가 되는 경우는 전혀 없다.
즉, HasAuthority()
는 서버에 존재하는 오브젝트에만 true이다.
</aside>
<aside>
💡 Collision의 Response 발생 이벤트들은 서버에서 호출된다.
e.g. OnComponentBeginOverlap
</aside>
IsLocalController
(1) NetMode == NM_Standalone
Standalone이니까 true.
(2) NetMode == NM_Client && GetLocalRole() == ROLE_AutonomousProxy
여기에 해당하는 것은 클라이언트 머신의 플레이어 컨트롤러일 때이다.
(3) GetRemoteRole() ≠ ROLE_AutonomousProxy && GetLocalRole() == ROLE_Authority
뒤 조건부터 보면 서버이고, 서버 자신이 플레이하는 플레이어 컨트롤러가 아닐 경우(그 밖에 서버에 접속한 클라이언트들)가 여기에 해당한다.
OnRep 함수에서의 입력 파라미터 역할
Actor.h
Owner는 변경될 때마다 모든 클라이언트에 Replicate함. 따라서 다음 코드의 가장 마지막 줄은 모든 클라이언트에게 replicate 된다.