玩家建造的地图没有可供传送的已烘焙关卡,且其几何体大到根本无法通过复制同步。这就是我在一个已发布的 UE5 项目里把它下发到每个客户端的方法:把每个部件按“ID + 变换”存储,将存档字节作为“始终相关”的 Actor 上的属性进行复制,而不是用 RPC,然后让每台机器用自身已烘焙的内容重建关卡。内容涵盖:压缩头、大小上限以及地图超出上限时的处理方式;为何“待定”状态并不意味着失败;阻止客户端构建与主机不匹配关卡的两种哈希;以及最坑、代价最大的一点:部件若保持为可移动,客户端会把其中一个存成移动基座(movement base),服务器无法解析,玩家就会被向后拉拽。纯 C++ 与引擎复制机制,无插件。
https://dev.epicgames.com/community/learning/tutorials/bLnay/unreal-engine-3300e5