Mapz's Blog

可以递归的函数指针

UE5:把GameMode只编译到服务器上导致的问题及解决方法

最近尝试服务器客户端代码分离,于是只在服务器上存在的 GameMode 类型,理所当然的被分到服务器专属模块中

但是打出包后,客户端连接上服务器后,任然会去加载 GameMode 类型,但由于找不到,会导致报错或崩溃

于是顺着 Debug 了下服务器发包

发现 AGameStateBase 中,有

1
2
UPROPERTY(Transient, BlueprintReadOnly, Category=GameState, ReplicatedUsing=OnRep_GameModeClass)
TSubclassOf<AGameModeBase> GameModeClass;

作为一个变量同步到客户端

查找了下,这个变量在客户端上并没有什么卵用

不理解为啥 Epic 会把这个东西设置为同步

于是在

1
GetLifetimeReplicatedProps

中果断使用宏

1
DISABLE_REPLICATED_PROPERTY

关闭 GameModeClass 的同步

顺利解决问题