zoukankan      html  css  js  c++  java
  • UE4联网测试的快捷方法

    工程中测试

    创建bat文件,格式如下:

    UE4Editor.exe路径   工程文件名 [地图名及参数]   -game   [其他自定义参数]

    UE4Editor.exe路径表示虚幻编辑器相应版本的UE4Editor.exe的绝对或者相对路径,如果路径名称中有空格,需要用引号把路径包裹住

    工程文件名表示uproject文件的绝对或相对路径,如果路径名称中有空格,需要用引号把路径包裹住

    [地图名及参数] 可以指定启动的地图名称,例如用一个完整路径:/Game/Maps/LobbyMap,或者省略路径,直接指定地图名称:LobbyMap。 地图后面可以加?listen参数,表示以listenserver的方式打开该地图

    这里还可以添加ip地址,例如:...LobbyMap 127.0.0.1,这样会让该实例运行以后直接尝试连接该ip地址

    -game表示运行游戏,如果不加该参数,则会启动编辑器

    例如:

    服务端:

    "C:Program FilesEpic GamesUE_4.18EngineBinariesWin64UE4Editor.exe" "D:WorkingFolderSceneVisualizationOfNPPUE4_ProgramUE4_Program.uproject" LobbyMap?listen -game -clientType server

    客户端:

    "C:Program FilesEpic GamesUE_4.18EngineBinariesWin64UE4Editor.exe" "D:WorkingFolderSceneVisualizationOfNPPUE4_ProgramUE4_Program.uproject" -game -clientType clientA

    (这个客户端命令没有直接尝试连接某个IP地址。可以在项目中利用Session去进行连接。)

    Packaged后测试

    Packaged以后的游戏会生成一个可执行的exe,直接点击就可以运行,但是如果想向其中传入一些参数,方法如下:

    创建一个bat,内容格式:

    游戏程序exe路径  [地图名和参数] [其他自定参数]

    服务端:

    WindowsNoEditorUE4_Program2.exe LobbyMap?listen -clientType server

    客户端

    WindowsNoEditorUE4_Program2.exe -clientType clientA

    批量测试

    如果讨厌bat文件的黑窗口,并且想依次运行多个bat,可以借助vbs脚本

    范例如下:

    set ws=WScript.CreateObject("WScript.Shell") 
    ws.Run "RunServer.bat",0
    WScript.Sleep 1000
    ws.Run "RunClientA.bat",0
    WScript.Sleep 1000
    ws.Run "RunCLientB.bat",0

    上述脚本的意思是先运行RunServer.bat,等待一秒,运行RunClientA.bat,等待一秒,运行RunClientB.bat

    命令行Package

    如果需要频繁package游戏到固定路径下进行测试,建议借助虚幻引擎的RunUAT.bat,其位置在 引擎目录EngineBuildBatchFiles

    相关wiki: https://wiki.unrealengine.com/How_to_package_your_game_with_commands

    我的使用范例:

    RunUAT BuildCookRun -project="D:WorkingFolder...UE4_Program2.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -stage -pak -archive -archivedirectory="D:WorkingFolder...UE4_Program_Build2"

    注意最后的输出路径结尾不能加反斜杠,不然会报错。

    这样的话,只需要在RunUAT.bat的目录下打开一个命令行,运行上述命令即可package。下次再package只需要按上键,再回车就可以了。

     或者有个更方便的办法,就是把上述内容写在一个bat里,需要用的时候直接双击就可以了。但是内容要稍微做点修改:

    "C:Program FilesEpic GamesUE_4.18EngineBuildBatchFilesRunUAT.bat" BuildCookRun -project="D:WorkingFolderSceneVisualizationOfNPPUE4_Program2UE4_Program2.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -stage -pak -archive -archivedirectory="D:WorkingFolderSceneVisualizationOfNPPUE4_Program_Build2"

    命令行复制文件夹

    网络测试有时候需要两个客户端,用bat启两次会导致本地化存储(例如save game)的冲突,这时候需要把打包好的程序复制两份或者多份。这个需求也可以自动化,使用bat的xcopy命令进行。

    范例:

    xcopy /E /Y "D:WorkingFolderSceneVisualizationOfNPPUE4_Program_Build2WindowsNoEditor" "D:WorkingFolderSceneVisualizationOfNPPUE4_Program_Build2WindowsNoEditor2"

    上述bat文件的作用是把第一个目录下的内容复制到第二个路径下,/E 表示复制目录和子目录,包括空的   /Y表示如果存在同名文件直接覆盖,不用提示

     这行命令可以写在Package命令的下一行,等package完直接复制一份,更加省事。

    但是要注意,如果要和上述例子连写,需要在第一条调用bat的命令前面添加一个call ,否则就只执行第一条,第二条会被略过。范例:

    call "C:Program FilesEpic GamesUE_4.18EngineBuildBatchFilesRunUAT.bat" BuildCookRun -project="D:WorkingFolderSceneVisualizationOfNPPUE4_Program2UE4_Program2.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -stage -pak -archive -archivedirectory="D:WorkingFolderSceneVisualizationOfNPPUE4_Program_Build2"
    xcopy /E /Y "D:WorkingFolderSceneVisualizationOfNPPUE4_Program_Build2WindowsNoEditor" "D:WorkingFolderSceneVisualizationOfNPPUE4_Program_Build2WindowsNoEditor2"
    pause

    如果不增加最前面的 call, 命令行就直接跳转到 RunUAT.bat的环境中去了,不会在第一条执行完之后跳转回来执行xcopy。

    最后的pause可以去掉,这里加上只是为了防止执行完毕自动关闭窗口,以便更清楚的在命令行窗口中看到执行xcopy的过程。

  • 相关阅读:
    HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋)
    HUD 2203 亲和串
    POJ 3461 Oulipo(乌力波)
    FJNU 1154 Fat Brother And His Love(胖哥与女神)
    Polygon Triangles
    Double it(水题模拟+逆向思维)
    Sphenic numbers(素数筛)
    Desktop(模拟)2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
    Weather Station(基础DP)2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
    找零钱(经典DP)
  • 原文地址:https://www.cnblogs.com/AnKen/p/8027237.html
Copyright © 2011-2022 走看看