zoukankan      html  css  js  c++  java
  • UE4 difference between servertravel and openlevel(多人游戏的关卡切换)

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

    有三个函数供我们使用: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会没有效果,在打包后的游戏中运行一切正常。

  • 相关阅读:
    svn使用
    canvas入门-3渐变方法
    canvas入门-2路径、文字
    canvas入门-1三种填充方式、渐变、模式
    jquery extend的使用
    angular入门-ngOptions
    jquery-EasyUI---panel面板的用法
    jquery-EasyUI---tooltip提示框的使用
    jquery-EasyUI---progressbar进度条的的使用
    jquery-EasyUI---searchbox搜索框的用法
  • 原文地址:https://www.cnblogs.com/litmin/p/7085337.html
Copyright © 2011-2022 走看看