Pawn類當中擁有一個RemoteViewPitch成員變量,
該變量已經複製客戶端中玩家Pitch的旋轉量,可以用其來進行服務器中pawn類型Pitch旋轉的同步。
值得注意的是RemoteViewPitch的類型是Unit8並且被壓縮不接受負數 想要得到實際的旋轉量需要將其乘以360在除以255即可。
IsLocallyControlled()函數用來檢查當前Pawn是否受到本地控制器的控制(可以在有多個玩家時檢查當前Pawn是否是自己控制的Pawn)。
成員允許被客戶端複製並修改可以使用UPROPERTY(Replicated)
配合GetLifetimeReplicatedProps函數使用。
想要成員在被服務器修改後調用回調函數可以使用UPROPERTY(ReplicatedUsing = OnRep_TeamColor),
配合GetLifetimeReplicatedProps函數使用。
OnRep_TeamColor即是需要回調的函數。
ReplicatedUsing只能在客戶端中進行回調,如果想運行在服務器中還需要手動調用。
設置成員變量在服務器中複製到客戶端的規則:
#include "Net/UnrealNetwork.h"
void MyClass::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps)const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(MyClass, AAA);
}