Jump to content
七龙的秘密基地
Search In
  • More options...
Find results that contain...
Find results in...

UE4 用蓝图实现主机房间创建与加入房间联机携带玩家切换地图


elstp_gf@foxmail.com

365 views

 Share

多人游戏的房间建立与房间搜索加入的实现

首先建立一个游戏实例

spacer.png

 

创建一个MPGameinstance 游戏实例类

 

打开蓝图,在事件蓝图里创建一个自定义事件 命名为HostGame

然后创建一个会话节点(Create Session) 其节点有三个参数和2种返回值

第一个参数是谁创建的,当然是玩家,所以获取玩家控制器

第二个参数是公开的一个会话的最大连接数

第三个参数是LAN 如果你勾上了,那就表示在LAN,也就是局域网房间

图中CreateMessage 是一个函数,只是一个打印控制台函数,可以无视

关键在Open KLevel ByName ,这个节点是打开关卡的意思,值得注意的是打开关卡在多人中有参数

第一个是关卡名称,也就是地图名例如第三人称模板默认的地图ThirdPersonExampleMap

第二个默认勾上

第三个关键参数就是 listen  主机模式必须有listen,监听否则就找不到房间

 

spacer.png

 

 

然后创建搜索房间事件

CreateLoading是我写的加载UI,无视

关键函数,Find Sessions 

参数1 玩家

参数2 最大搜索会话返回结果

参数3 是不是局域网搜索

找得到房间后你可以直接加入,或者储存起来,我这里是存起来让玩家自己选要进的房间

spacer.png

 

 

最后就是加入房间了!

加入房间关键函数也是 Join Session

把上面储存的会话结果放到第二个参数 ,然后就可以加入房间了

spacer.png

 

值得注意的是设置

默认生成的pawn 必须是你搞好的角色

一般的游戏不是世界生成,而是服务器创建一个pawn 然后给那个玩家possess,这都是在服务器上运行的,所以当你要这么搞,必须判断是否是服务器,可以用Has Authority网络鉴权 来判断

spacer.png

 

然后是大家最关注的地图里有玩家,主机怎么携带玩家跳转到其他关卡,其实很简单

关键参数: ServerTravel  例如 ServerTravel 地图名称?listen

使用方法:

spacer.png

 

 

 Share

0 Comments


Recommended Comments

There are no comments to display.

×
×
  • Create New...