UE4联网教学(1)

首先:我们要有一个框架(两个客户端怎么联系)在UE4中客户端互相之间的信息交流都是通过服务器来进行交互的。那么我们就需要一个可以存在与服务器中但是他又能获得各个客户端中的玩家控制器的信息,这个就是游戏模式(game mode),那么接下来我们就需要创建玩家控制器(player controller)因为它可以分别在服务器还有玩家控制器中存在。

例子:比如我们需要在开始的时候打开两个客户端并且给两个客户端(相当于玩家)进行命名。那么首先创建game mode,然后是玩家控制器(player controller)。在创建一个pawn为我们在每个客户端控制的pawn。修改:world settingzhong的game mode,这样我们打开两个客户端就可以发现没有办法控制屏幕了。

UE4联网教学(1)

接下来编辑game mode里面的内容首先用UE4联网教学(1)这个节点,这个节点只要play之后首先触发的就是他,每当有有一个玩家控制器登陆的时候就会触发一次。这个时候我们需要获得刚刚创建的玩家控制器(player controller)。

UE4联网教学(1)

这个图的意思是当我们获得一个玩家控制器的时候把这个玩家控制器给予这个玩家控制器数组,然后把这个数组给玩家控制器,我们需要玩家控制器打开UI ,并且复制名字。所以UI以及复制,通知我们都要在player controller中编辑,UE4联网教学(1)在玩家控制器中我们创建一个函数(可以在另外一个蓝图中调用)首先我们要获得玩家控制器(每一次登陆就**并且赋值一次那么这里的玩家控制器就是我们客户端的数量)这样我们就拿到了这个数组但是我们需要转换出来,那么我们就用forEachloop这个节点,在每次通过的时候读取进入的玩家控制器(有几个就读取几个)。在玩家控制器里面创建;两个变量一个是名字的text类型的,一个是数组类型的。通过每次更新的玩家控制器,从中拿到text变量每一次加到数组里面,这时候我们都是在服务器里面进行的然后拿到此时的玩家控制器的数组赋值给新的玩家控制器(就相当于吧服务器中玩家的值给了客户端)但是这个时候我们会发现,我们这么写的话第一次登陆(客户端1)的玩家名字并不会通知到客户端2那么我们就需要更新客户端1.那就再结束的时候再一次获得所有的玩家控制器把其中的名字数组从新复制(这里有一个知识点那就是变量在服务器还有两个客户端之间是怎么显示的)首先通知类型UE4联网教学(1)这个类型通知给服务器然后通过服务器再两个再复制给客户端。这样客户端就是可见的。