UE4 difference between servertravel and openlevel(多人游戏的关卡切换)

本文介绍了UE4中多人游戏关卡切换的两种方式:无缝和非无缝切换,并详细解释了三种相关函数的作用及使用场景。此外还讨论了如何配置无缝切换以及一个关于servertravel命令的已知Bug。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多人游戏的关卡切换分为无缝和非无缝。非无缝切换时,客户端将跟服务器断开连接,然后重新连接到同一个服务器,服务器则加载一个新地图。无缝切换不会发生这样的情况。

有三个函数供我们使用:UEngine::BrowseUWorld::ServerTravel 和 APlayerController::ClientTravel。

1,UEngine::Browse

  非无缝切换,切换到目标地图前将断开跟客户端的连接。

2,UWorld::ServerTravel

  只能在服务器调用,将服务器跳转到新地图,所有连接的客户端会跟随,服务器会为所有已连接的客户端调用 APlayerController::ClientTravel。

3, APlayerController::ClientTravel

  在客户端调用会转移到新的服务器,如果从服务器调用,则使特定客户端转移到新地图。

使用无缝切换:通过UGameMapsSettings::TransitionMap配置一个过渡地图, AGameMode::bUseSeamlessTravel设置为true。

蓝图中的openlevel,实际上调用的是ClientTravel,这会中断所有连接,使用命令行调用servertravel不会中断这些连接,例如:servertravel /Game/Maps/Level01.

这里发现UE4的一个Bug,在PIE运行游戏时调用servertravel会没有效果,在打包后的游戏中运行一切正常。

转载于:https://www.cnblogs.com/litmin/p/7085337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值