最近尝试服务器客户端代码分离,于是只在服务器上存在的 GameMode 类型,理所当然的被分到服务器专属模块中
但是打出包后,客户端连接上服务器后,任然会去加载 GameMode 类型,但由于找不到,会导致报错或崩溃
于是顺着 Debug 了下服务器发包
发现 AGameStateBase 中,有
1 | UPROPERTY(Transient, BlueprintReadOnly, Category=GameState, ReplicatedUsing=OnRep_GameModeClass) |
作为一个变量同步到客户端
查找了下,这个变量在客户端上并没有什么卵用
不理解为啥 Epic 会把这个东西设置为同步
于是在
1 | GetLifetimeReplicatedProps |
中果断使用宏
1 | DISABLE_REPLICATED_PROPERTY |
关闭 GameModeClass 的同步
顺利解决问题