【UE4学习记录】UE4网络方面的探索0-2

来源:互联网 发布:知乎下载电脑版 编辑:程序博客网 时间:2024/05/22 08:02

在上一章中,我粗略的表达了在最开始的UI界面设置上的操作,没有用到一丝代码,直接蓝图敲定去实现基本的东西。

接下来回到正题,我们需要实现UI所对应的具体功能了。

第一步:整理思路

首先确定UI 的按钮和Text等一些相关内容没有出错,尝试编译保存后不会报错等(当然第一章结尾的时候就应该确保没有问题);

第二步:继续用蓝图去实现吧,毕竟cpp编程是个烧脑的过程,怎么简单怎么来。

找到之前创建的三个UI,双击IntServerUI,打开确定按钮的蓝图,我们去尝试实现怎么连接服务器。

最终蓝图呈现如下样式就可以了


PS:因为UE4的强大,你在预览播放时候,两个播放窗口其实在你本机上已经实现AutoLine,这个编写连接操作蓝图其实在预览播放时候会显得多余,但是,一旦你的项目需要打包,那么这个是必要的操作。


在编译保存后,我们要做的是找到你设置的GameMode(世界设置里可以设置GM),并且设置你的Player Controller,在GM里面我们进行蓝图的拖拉。

首先,你要做的是在左边我的蓝图中,新建一个变量并取个名字,设置它的变量类型是你的playercontroller。我的是HHHPlayerController.

考虑到,一步一步写蓝图,常规逻辑写下来会很多,很乱。我决定使用函数去不断调用来减少工作量。

新建的函数叫做Login,取名字好认人!在细节面板中的Input新建一个player,变量类型是你的playercontroller,

字打多了不如看图!


函数貌似没什么问题吧,那就调用它呗。

回到刚刚的事件图表,我们拖入这个函数,别急着连接配对。

因为通常两个蓝图组件之间的player互联会出现一定的问题,甚至是连接不了,我们需要做的是转换一下就好。

点住player节点向右释放,出现调用列表,输入cast会出现cast你的playercontrollor,点击即可,不会就看下图


等等,忘记设置函数蓝图内容了,请跳转到函数蓝图图表中,同时我还注意到一个问题。

平时玩游戏建立连接后服务端会给你一些反馈,我们需要再新建一个函数用作反馈,具体操作就是新建-编辑-拖动等等

BTW:新建的函数里面input需要建立两个变量,一个当作目标,就是我们自己me,一个是反馈的东西new。

注意一下是不是选定类型的数组!

这些完全可以举一反三,我在这里放一下成型的蓝图就好。



Example是局部变量,当作一个测试,防止编译出错。

接下来的事件图表中,出现的蓝图,本人不才,无法用更恰当的语言去表述这是什么,大概是分配什么什么的意思。

所以参照蓝图去实现就好


接下来我们login后肯定也要login out

那么又是函数!并且接下来的难度比较大,逻辑上需要一些理解时间。

下面的蓝图是分别对函数,事件图表的编写。仔细理解不难,乍一看晕乎。





接下来,我们需要在playercontrollor里写一些蓝图。

在pc里创建变量name同样是string类型。

name在后面是可以编辑修改创建的,因为要取名字!。

我们再回到playerlogin那里,

按我的方法来构建蓝图

编译后的蓝图如下:



这时候,我们可以回到最初第一章的UI界面,那感人又熟悉的地方。

因为,我们需要把名字等什么显示到UI上。

在早之前的第一章,我们在TEXTBOX里面加入了text,现在可以派上用场了。

去到playercontrollor,在蓝图里加入get all widget of class字样和print string.

同样,这些需要循环语句来表示更新的状态。

get all widget of class里面请选好那个最初的界面UI,

最后如下:


在mainUI里面设置好函数,取名updateplayer,用作更新,在上面蓝图里调用。

后来想想这个流程貌似不够完善,于是我改成下面的方案



还记得关卡蓝图吗,打开,在里面设置如下:


本人测试的时候发现其他问题,调试中,发现虽然编译没问题,但是冥冥之中,有什么东西好像多余了且出错了。

于是乎。又是漫长的寻找过程,截止目前,本博文已经修改编写了一天了。突然反省为啥要开发游戏,去钻研这个,feel like shit!

但是,我就是喜欢啊,那么继续吧!

42分钟的研究,发现playercontrollor中不完善,直接把关卡蓝图的东西复制到pc里就好了,看下图:


这是修改后的playercontrollor。(截图内容为关卡蓝图修改到pc上的内容,可以仔细对照)


接下来的难度很高,鄙人不才,实在是没法继续记录,这块内容。我将继续研究,对照教学继续深入。

本文暂停ing


1 0