본문 바로가기
공부/Unreal Engine 5

[언리얼5] 멀티플레이 사격 테스트(NetMulticast)

by MY블로그 2024. 3. 4.

플레이어 캐릭터에 무기를 장착하고 사격하는 애니메이션을 재생시킨다.

이때 무기 클래스를 별도로 만들고 무기의 애니메이션을 따로 넣어 준다.

 

테스트1

서버에서는 아이템 장착 애니메이션과 사격 애니메이션등이 정상적으로 이루어지지만

클라이언트에서는 해당 애니메이션들이 복사되지 않고 있는 것을 볼 수 있다.

애니매이션의 복사가 필요

 

NetMulticast RPC 를 사용한 데이터 복사

 

기존의 발사 함수외에 추가적인 매크로를 적용한 함수를 만든다.(함수매크로는 Server, Reliable 을 사용)

이때 선언정의후 CPP 파일에 정의된 함수에 _Implementation을 추가하도록한다.

일반함수로 사용할경우 값복사가 이루어지지않으며 컴파일이 불가능.

 

이후 추가적으로 멀티캐스트 호출용 함수도 만들어준다.

서버함수처럼 _Implementation을 추가하도록한다.

 

기존에 단순하게 Fire 함수를 실행하던로직을 MulticastFire() 함수로 이동시킨다.

로직의 순서

1. Fire()함수 실행 > ServerFire()함수 호출

2.ServerFire()함수실행 > MulticastFire()함수 호출

3.MulticastFire()함수 실행 > 실제 공격 로직 호출

4. 실제 공격 로직 실행

 

수정후 테스트는 3개의 실행창으로 진행.

1개의 서버 창과 2개의 클라이언트 창

서버에서 공격 실행 > 서버 & 클라이언트 모두 공격 실행 확인

클라이언트에서 공격 실행 > 서버 & 클라이언트 모두 공격 실행 확인

 

댓글