본문 바로가기

새싹 UE5

Unreal Network - Pistol, Fire, Dead 동기화

 

 

 

RPC 를 사용한 네트워크 동기화 

권총 부착 or 해제를 서버 - 클라이언트's 동기화 

 

1. F키를 눌러 TakePistol 호출 시 ServerRPC 로 서버에 요청

2. ServerRPC 함수에서 총을 가지고 있지 않다면 가장 가깝게 있는 권총을 선택

3. 안가지고 있으면 가장 가까운 권총을 서버에서 Multicast Attach 실행. 모든 클라에게 해당 캐릭터의 총 장착을 동기화
가지고 있으면 현재 권총을 서버에서 Multicast Detach 실행. 모든 클라에게 해당 캐릭터의 총 해제를 동기화

 

 

총 쏘기 및 재장전 동기화

 

1. 라인 트레이스로 Hit 결과 값을 ServerRPC_Fire 에게 전달하면서 서버에게 Fire 동기화 요청

2. 서버에서 MulticastRPC_Fire 로 모든 클라이언트에게 특정 캐릭터의 Fire 를 동기화 시전

3. Multicast_Fire 에서 요청한 객체의 Fire 애니메이션 실행하여 모든 클라이언트에서 복제된 해당 객체가 Fire 애니메이션을 동기화
Local 만 가지고 있는 MainUI 의 불릿 이미지 소비

4. 재장전도 같은 형식으로 Local >> Server -> Multicast (All Client ) 순으로 모든 클라이언트를 동기화

 

 

Local 용 UI 와 다른 클라이언트 머리 위에 띄우는 체력바

 

 

Local 만 MainUI 를 생성해서 사용하고 본인 머리 위에 HPBar (WidgetComponent) 는 안보이게 만들기

데미지를 받을 때 Local 과 NonLocal 에 따라 각각 다른 체력바 Updated