UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗)

目录

IP地址

OnlineSubsystem

插件打开

模块加载

Config修改

Cpp

测试:


在之前的文章中,我们讲解了在同一个WiFi下相互连接的制作。

但是我们并不只想在同一个本地连接,我们想要的是在不同的WiFi下一起玩游戏。

所以我们先来讲解一下ip地址:

IP地址

现在在同一个WiFi下,3个电脑的ip地址按顺序不同。

这样,只有玩家A的电脑能够通过ip地址连接玩家B玩家C的电脑

然后你的WiFi为了能连接到Internet,所以会在外部再给予你的WiFi一个地址【这样认为就可以了】

外部的信息会从外部到你的WiFi,再到你的玩家身上。

如图:

所以在之前的本地连接是如此的简单。

那么如何和,假如另一个玩家在地球的另一端,你们应该如何一起玩游戏?

而我们所需要的平台又有很多,如果发布在不同的平台,需要学习很多不同的平台的一些代码,比如steam、Xbox等等。

而虚幻引擎提供了一个在线的子系统,我们只需要通过这个来决定:

他有一个抽象层,这个抽象层将其他平台的特定的代码抽象掉了,所以我们并不用担心。

而这个系统叫做:OnlineSubsystem

OnlineSubsystem

插件打开

我们以steam为例:

我们打开项目,打开插件,然后搜索:

这里面可以看见许许多多的平台,不过这里我们使用的是steam的这个:

 

模块加载

因为打开了这个插件,现在我们进入VS中看看:

这个模块需要添加一个OnlineSubsystemSteam和OnlineSubsystem,不知道的话看:

然后就是这个样子:

这样子我们就能访问相关的模块了。

Config修改

找到你的项目文件,然后打开config。

接下来我们打开的是这个DefaultEngine.ini的文件

我们要在这个文件中添加一些东西,让我们的项目配置为使用steam,详情可以看:

虚幻引擎Online Subsystem Steam接口 | 虚幻引擎5.1文档 (unrealengine.com)

在这个里面我们可以找到:

第一个是将网络驱动程序定义为steam的网络驱动,这样我们就可以连接到steam了。

第二个是定义了在线子系统为steam,这样就可以使用steam的网络配置了

第三个是默认的应用开发ID,默认为480,你如果没有就用480即可。

现在我们将这个东西复制到我们的DefaultEngine.ini中:

现在我们关闭vs和编辑器,打开项目文件,删除一些不需要的东西后,重新生成vs:

然后点击虚幻标志右键,Generate Visual Studio project files

双击后会说你缺少文件,但不需要担心,只需要点击是即可,因为他会重新将Binaries文件重新生成的。

Cpp

在头文件里面创建:

TSharedPtr是非UObject的智能指针

//向前声明的接口类
	//typedef TSharedPtr<IOnlineSession, ESPMode::ThreadSafe> IOnlineSessionPtr
	//class IOnlineSessionPtr myOnlineSessionInterface;因为是多线程的,所以我们并不能这样使用,当然,如果你将#include "Interfaces/OnlineSessionInterface.h"的头文件放在头文件中,也可以使用这个【class要去除】
	TSharedPtr<class IOnlineSession, ESPMode::ThreadSafe> myOnlineSessionInterface;

然后进入玩家的cpp文件中:

#include "OnlineSubsystem.h"

//你也可以将这个放在头文件中,然后用这个IOnlineSessionPtr myOnlineSessionInterface
#include "Interfaces/OnlineSessionInterface.h"

然后是在构造函数里面创建指针:

 

然后打印:

这里我们编译的时候可能会出错

对此我们并不需要担心,这是正常的,我们和之前一样,退出来,将binariessavedintermediate删除,然后重新更新一下即可。

测试:

这里运行后可以看见这里知道了指针NULL,实际上这并不是说你找到了空NULL,而是因为在虚幻引擎中有一个名字为NULL的OnlineSubsystem(这个你可以拿来测试局域网内的连接)。

然后你会发现不论如何在编辑器中设置,他始终是NULL,而不是steam

接下来你只需要将其进行打包,然后再打开就会发现,左上角连接的是steam

在这里就可以做一些steam的操作了(比如万恶的shift+tab出现的那个窗口) 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多方通行8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值