Unreal
언리얼 엔진 멀티플레이 RPC관련 디버깅
건전한 건전지
2023. 10. 28. 03:03
728x90
반응형
Test.cpp
UFUNCTION(Server, Unreliable)
void ServerEquipButton();
처럼 RPC를 선언하고
Test.cpp
void ServerEquipButton_Implementation()
{
if(CombatComponent)
{
CombatComponent->EquipWeapon(OverlappingWeapon);
}
}
void Equip()
{
if(CombatComponent)
{
// 서버에서 동작했다면 바로 Equip을 실행하고
if(HasAuthority())
{
CombatComponent->EquipWeapon(OverlappingWeapon);
}
// 클라이언트라면 RPC를 사용해 서버에게 알려준다.
else
{
ServerEquipButton_Implementation();
}
}
}
와 같이 Implement함수를 정의하고 HasAuthority를 이용해 서버 - 클라이언트 실행부를 나누어서 실행하였지만 제대로 클라이언트에서 무기를 집었을 때 서버로 올바르게 전달이 되지 않았다.
이유는 RPC 함수에 함수명_Implementation()으로 정의는 하였지만, 호출해서 사용을 할 때엔 함수의 원형 이름을 불러주어야 하는 것이었다.
void ABlasterCharacter::Equip()
{
if(CombatComponent)
{
// 서버에서 동작했다면 바로 Equip을 실행하고
if(HasAuthority())
{
CombatComponent->EquipWeapon(OverlappingWeapon);
}
// 클라이언트라면 RPC를 사용해 서버에게 알려준다.
else
{
// 이렇게
ServerEquipButton();
// ServerEquipButton_Implementation();
}
}
}
기본적인건데 난 몰랐음 ㅜㅜ 근데 어쩌라고 지금부터 배우고 알았으면 됐지
728x90
반응형