반응형
플레이어 캐릭터는 현재 칼과방패, 활 두가지의 무기 모드를 갖고 있다.
플레이어 캐릭터는 무기 모드를 변경할 때 무기를 변경하는 AnimMontage를 Play한다.
- 무기 변경 기능 동기화를 위한 RPC
클라이언트에서 Change Weapon 입력 발생시 서버에서 모든 클라이언트에게 montage를 실행시키게 하는 흐름으로 구현했다.
- OnSwordAndShieldMode(), OnBowMode() : Change Weapon 입력에 바인드 된 함수
- ServerSwitchWeaponMode(서버에서 실행) : SetCurrentWeaponMode 함수를 Call
- SetCurrentWeaponMode(멀티캐스트) : CurWeaponType을 바꿔주고 플레이어 캐릭터의 ChangeWeapon Montage를 재생하는 이벤트
// reliable NetMulticast 함수를 너무 많이 쓰면 네트워킹에 좋지는 않다고 한다. 다른 중요 데이터들을 밀쳐내고 들어갈 수도 있기 때문. 하지만 아직까지는 많이 쓰고 있지 않아서 그런지 문제가 없다.
=> 실행 흐름을 정리하자면
- Change Weapon 입력발생(소유 클라이언트)
- ServerSwitchWeaponMode 함수 Call : 클라이언트에서 호출, 서버에서 실행
- SetCurrentWeaponMode 함수 Call : 서버와 현재 연결된 모든 클라이언트에서 실행.
추후 다른 기능 동기화 하면서 언리얼 네트워킹 방식들에 익숙해 진 다음 필요할 때 RepNotify도 구현해볼 예정.
반응형
'Unreal Engine > [UE4] RPG Project' 카테고리의 다른 글
5. Dedicated Server 네트워킹 - Sprint 기능 Replication (0) | 2022.07.01 |
---|---|
4. 캐릭터 콤보공격, 플레이어 입력구조 변경(플레이어 컨트롤러-폰 구조) (0) | 2022.01.15 |
3. C++ 애님 인스턴스, Character 점프기능, Sprint 기능 (0) | 2022.01.12 |
2. 언리얼엔진의 PlayerCameraManager / 캐릭터 회전(ControlRotation) (0) | 2022.01.11 |
1. 플레이어 컨트롤러에서 캐릭터 Input 입력 바인딩하기 (0) | 2022.01.10 |