客户端打包还要在编辑器中进行,所以须要在解决方案配置(Solution Configuration)中选择"Development Editor",启动项目(Startup Projects)中选择“Shooting_Game”,然后点击运行按键。第一次运行编辑器会编译Shader,所以历时较久(我大概须要20分钟),并且会长时间卡在45%,等待即可。
创建入口关卡
在左下方内容浏览器(Content Browser)中选择Content目录,选择储存关卡的文件夹(我的是Levels),右边窗口右键争创关卡(Level),命名为EntryMap。
在入口关卡中连结服务器
双击选择EntryMap,然后在底部工具栏选择新蓝图(BluePrints)游戏服务器,打开关卡新蓝图(Open Level BluePrint)。引出BeginPlay引脚,选择OpenLevel,在LevelName中填写服务器IP地址,保存编译。
创建过渡关卡
用同样的方法争创关卡,命名为TransitionMap,无需给该关卡添加内容,保持空白即可。
指定游戏地图
菜单栏选择编辑(Edit)- 项目设置(Project Settings)- 项目(Project)- 地图跟方式(Maps & Modes)- 默认地图(Default Maps),依次将编辑器初始地图(Editor Startup Map)设置为GameMap,游戏默认地图(Game Default Map)设置为EntryMap,过渡地图(Transition Map)设置为TransitionMap,服务器默认地图(Server Default Map)设置为GameMap。
双击运行该快捷方法,可以看见一下日志:
LogInit: WinSock: I am PC-20190329KLKV (192.168.52.160:0)
LogNet: GameNetDriver IpNetDriver_0 IpNetDriver listening on port 7777
LogWorld: Bringing World /Game/Levels/GameMap.GameMap up for play (max tick rate 30) at 2019.10.09-11.20.56
LogWorld: Bringing up level for play took: 0.002008
LogLoad: Took 0.129134 seconds to LoadMap(/Game/Levels/GameMap)
LogLoad: (Engine Initialization) Total time: 1.03 seconds
可以看见,服务器运行在192.168.52.160,监听端口为7777。打开cmd命令行,输入netstat -an|FIND "7777"
UDP 0.0.0.0:7777 *:*
由此可见,UE4服务器与客户端连结使用的是UDP合同,默认端口为7777。
至此,UE4项目的服务器建立完成,可以使用打出的客户端包来进行连结检测。
效果演示