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

这篇具有很好参考价值的文章主要介绍了UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

IP地址

OnlineSubsystem

插件打开

模块加载

Config修改

Cpp

测试:


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

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

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

IP地址

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

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

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

如图:

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

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

而这个系统叫做:OnlineSubsystem

OnlineSubsystem

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

插件打开

我们以steam为例:

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

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

 UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

模块加载

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

然后就是这个样子:

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

Config修改

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

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

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

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

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

Cpp

在头文件里面创建:

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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"

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

 UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

然后打印:

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

测试:

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

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

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

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

UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗),# ue4/5多人游戏插件制作,游戏,网络,c++,ue5,ue4

在这里就可以做一些steam的操作了(比如万恶的shift+tab出现的那个窗口) 文章来源地址https://www.toymoban.com/news/detail-605375.html

到了这里,关于UE4/5多人游戏详解(二、通过OnlineSubsystem和OnlineSubsystemSteam连接steam,如实现在steam类游戏里面shift+tab打开steam的弹窗)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4 中可全局获取的变量(例如游戏实例、玩家控制器等) 详解

    🙋‍♂️ 作者:海码007 📜 专栏:UE虚幻引擎专栏 💥 标题:UE4 中可全局获取的变量(例如游戏实例、玩家控制器、游戏模式等) 详解 ❣️ 寄语:加油,一次专注一件事! 🎈 最后: 文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎

    2024年02月06日
    浏览(52)
  • 【UE5 多人联机教程】04-加入游戏

    1. 新建一个控件蓝图,父类为“USC_Button_Standard”  控件蓝图命名为“UMG_Item_Room”,用于表示每一个搜索到的房间的界面 打开“UMG_Item_Room”,在图表中新建一个变量,命名为“Session”  变量类型为“蓝图会话结果”,选择可编辑实例和生成时公开 2. 打开“UMG_MainMenu”,添加

    2024年02月15日
    浏览(50)
  • UE4游戏保存

    在游戏运行过程中由于某些事情需要暂停一下游戏,那就需要把游戏当前的进度保存起来,下次打开的时候还可以再次玩,我们这里主要保存的就是。所有需要有一个游戏保存的机制。UE4提供了这样的机制。 首先新建一个类继承在SaveGame,命名为FirstSaveGame 打开VS2019编辑代码

    2024年02月12日
    浏览(41)
  • ue4游戏dump

    链接 UE4Dumper:https://github.com/kp7742/UE4Dumper 游戏示例: https://www.bilibili.com/video/BV12v41167Gy 定义 GWorld 指向游戏世界对象 GNames 指向游戏字符串数组 GUObject 指向游戏对象数组 UE4版本 查看AndroidManifest.xml 游戏版本为 U E 4 + R e l e a s e - 4 . 2 5 指针怎么找 GWorld 切换到Exports 搜索【

    2024年02月04日
    浏览(41)
  • UE4/UE5引擎 FPS游戏逆向工程

    课程详细目录 : UE引擎逆向 入门到精通 联系方式 :点击课程详细目录查看 简介: 🔥 本课程全部采用C++编程 🔓 对抗加解密逆向过程:我们将深入探讨如何对抗游戏的加密与解密机制 🕵️ 功能的寻找与实现:学完课程后,您将能够迅速定位并实现游戏内各种功能 学完本

    2024年02月02日
    浏览(36)
  • 关于ue4 射击游戏架构设计

    传统mmo的服务器架构 网关---游戏逻辑服---游戏db服 网关--- 游戏逻辑服---关系服务器master 其结构简单,方便维护,但是在应对射击游戏时候暴露出很大的缺陷 但是随着大dau产品的像和平精英等游戏问世 腾讯主要的服务器是基于tbus4j,基于共享内存+ socket的数据交互,该框架的

    2024年02月02日
    浏览(50)
  • UE4、UE5通过FPaths获取各目录

    常用的几个目录: FPaths::ProjectDir();         工程根目录。 FPaths::GameSourceDir();         工程的Source目录 FPaths::ProjectContentDir();        工程的Content目录 通过直接查看FPaths的脚本源码:

    2024年02月15日
    浏览(33)
  • 《通过UE4/UE5的ProceduralMesh组件创建网格》

    一.介绍         因项目需求我接触到了ProceduralMesh组件,项目需要做淹没分析推演,根据json数据来在UE中推演出漫长淹没过程。这意味着数据是庞大的那么该怎么生成这个巨大的网格面呢。一开始我对这个组件的领悟不是很深刻,一个面是由四个坐标点组成,在最初的测试过

    2024年02月15日
    浏览(37)
  • 【UE4 塔防游戏系列】10-防御塔升级

    目录 效果 步骤 一、根据防御塔等级修改子弹伤害 二、根据防御塔等级修改子弹速度 三、根据防御塔等级修改检测半径 四、根据防御塔等级修改子弹颜色 五、根据防御塔等级修改换弹时间   一、根据防御塔等级修改子弹伤害 1. 打开“TowerBaseBullet_Child”,新建整型变量“

    2024年02月15日
    浏览(34)
  • UE4初学者设计小游戏(一)

    目录 一、设计简介及故事概要 二、环境设计与场景搭建 1. 将天空球改成黑夜 1 2. 通过画刷(BSP)搭建逃脱石头屋 2 3. 添加地形 5 4. 添加氛围元素 5 5. 感应灯 7 三、游戏机关蓝图设计 1.手电筒设计 8 2.设计开关门 9 6. 天梯设计 12 7. 加血装置 13 四、UI设计 2. 开始界面 14 3. 暂停

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包