例子
定义RPC函数如下:
UFUNCTION(NetMulticast, Reliable)
void OnClientJump();
void OnClientJump_Implementation();
在头文件声明RPC函数OnClientJump ,同时要在函数上面加上宏UFUNCTION , 下面再写一个 OnClientJump_Implementation 参数列表和OnClientJump 一致。
要把函数实现写在OnClientJump_Implementation 函数中,OnClientJump 只写声明,不写实现,但调用式使用OnClientJump 函数调用。
cpp中:
void ABasePlayer::OnClientJump_Implementation()
{
PlayAnimMontage(JumpAnim, 0.7);
}
UFUNCTION参数:
一、执行位置
- NetMulticast
- Server
- Client
二、可靠性
默认不可靠,加上Reliable 参数则可靠
三、数据验证
UFUNCTION( Server, WithValidation )
void SomeRPCFunction( int32 AddHealth );
bool SomeRPCFunction_Validate( int32 AddHealth );
void SomeRPCFunction_Implementation( int32 AddHealth );
需要再写一个SomeRPCFunction_Validate 函数,返回值类型是bool,参数和SomeRPCFunction 一样,返回true 验证通过,返回false 验证失败, 验证失败会踢下线客户端。
|