The RPC function literally does nothing for testing purpose but my clients stop working/moving, rotating etc…/ except server. Everything is working fine if i remove TArray parameter from RPC functions. It works if i create public replicated array and change it every frame. But the game becomes really laggy and jittery, so i really don’t want to create replicated variable that’s heavily modified every frame. Also there is no compiler error. How to properly pass TArray variable via RPC function’s parameter? What am i doing wrong? Please help me, almost stuck on this whole three days.
Here is the Header file declaration:
UFUNCTION(Reliable, Server, WithValidation)
void Cone_Server(const TArray<FVector>& vertices);
void Cone_Server_Implementation(const TArray<FVector>& vertices);
bool Cone_Server_Validate(const TArray<FVector>& vertices);
UFUNCTION(Reliable, NetMulticast)
void Cone_Multicast(const TArray<FVector>& vertices);
Here is the CPP file definition and call:
void AMafiaCharacter::Tick(float DeltaSeconds)
{
Super::Tick(DeltaSeconds);
TArray<FVector> ConeVertices;
//Some actions on ConeVertices;
if (HasAuthority() && IsLocallyControlled())
{
Cone_Multicast(ConeVertices);
}
else
{
Cone_Server(ConeVertices);
}
}
void AMafiaCharacter::Cone_Server_Implementation(const TArray<FVector>& vertices)
{
Cone_Multicast(vertices);
}
bool AMafiaCharacter::Cone_Server_Validate(const TArray<FVector>& vertices)
{
return true;
}
void AMafiaCharacter::Cone_Multicast_Implementation(const TArray<FVector>& vertices)
{
}