本文主要剖析 UE5 网络中是如何进行属性同步和RPC的。
同步 Actor
要进行属性同步,首先就要先同步 Actor,但更要知道哪些 Actor 需要网络同步。
哪些 Actor 需要网络同步
Actor 需要设置 bReplicates
为 true,才会进行同步,
以 Spawn Pawn 为例,玩家登录之后会由 GameMode
创建 Pawn 实例。
1 | AActor* UWorld::SpawnActor( UClass* Class, FVector const* Location, FRotator const* Rotation, const FActorSpawnParameters& SpawnParameters ) |
若 bReplicates
为 true,则 RemoteRole 为 ROLE_SimulatedProxy,表示是远端为模拟代理。
1 | void AActor::PostInitProperties() |
将需要同步的 Actor 加入到 NetDriver中的一个集合里, 至此就找到了要网络同步的 Actor,需要注意一点是 Replicate
是支持动态开关的。