首页 > 解决方案 > UE4 RPCs Function _Implementation not called

问题描述

要开始,我很抱歉,但我的英语说得不太好。

我的.h:

UFUNCTION()
void AttachToPlayer(USkeletalMeshComponent* Mesh, const FName &SocketName);

UFUNCTION(Server, Reliable, WithValidation)
void ServerAttachToPlayer(USkeletalMeshComponent* Mesh, const FName &SocketName);

virtual void ServerAttachToPlayer_Implementation(USkeletalMeshComponent* Mesh, const FName &SocketName);

virtual bool ServerAttachToPlayer_Validate(USkeletalMeshComponent* Mesh, const FName &SocketName);

我的cp:

void ABagPlayer::AttachToPlayer(USkeletalMeshComponent* Mesh, const FName &SocketName)
{
    if (Role == ROLE_Authority)
    {
         GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("TEST"));
    }
    else
    {
        ServerAttachToPlayer(Mesh, SocketName);
    }
}


bool ABagPlayer::ServerAttachToPlayer_Validate(USkeletalMeshComponent* Mesh, const FName &SocketName)
{
    return true;
}


void ABagPlayer::ServerAttachToPlayer_Implementation(USkeletalMeshComponent* Mesh, const FName &SocketName)
{
    AttachToPlayer(Mesh, SocketName);
}

我不明白为什么,当我的客户端启动函数“AttachToPlayer”时,没有调用函数“ServerAttachToPlayer_Implementaion”。但是,如果是调用“AttachToPlayer”的服务器,则调用“ServerAttachToPlayer_Implementaion”函数。

我已经尝试了很多东西,我正在拉我的头发!

谢谢你的帮助

标签: unreal-engine4

解决方案


推荐阅读