UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

这篇具有很好参考价值的文章主要介绍了UE4/5多人游戏详解(一、基础理论与局域网内部的连接)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

多人游戏理论简单讲解

点对点:

于是,服务端和客户端的概念出现了:

局域网连接:

从第三人称c++项目开始

创建项目:

以一个客户端作为监听服务器

3个客户端,在场景后方使用服务器:

局域网连接:

蓝图

C++


多人游戏理论简单讲解

点对点:

什么是点对点?

比如两个玩家,其移动和攻击,将数据互相传输,如图:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

但一旦多了一个玩家,比如玩家C的出现,这样就会导致大量的数据进行传输:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

网络上面的数据大量传输只是一个原因。

更大的原因是3个玩家之间的游戏实例也是时时刻刻发生变化的,那么问题来了,ABC应该要遵循谁的游戏实例呢?

也就是说他们3个谁也无法说服谁,没有人知道谁是真正的权威【作为主要的游戏实例】

于是,服务端和客户端的概念出现了:

通过获取的【假设是移动】,复制给其他客户端,从而刷新。

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

除此之外,是服务器的机器是专门用来处理数据,而没有进行图片渲染,之后将处理的数据给各个客户端的。

局域网连接:

连接本地的同一个局域网的几个玩家:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

 文章来源地址https://www.toymoban.com/news/detail-417929.html

从第三人称c++项目开始

创建项目:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

进入之后:

以一个客户端作为监听服务器

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

将玩家数量改为2,然后以监听服务器运行

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

所以如果将玩家数量改为3,就会看见3代同框:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

3个客户端,在场景后方使用服务器:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

局域网连接:

蓝图

创建一个地图,作为等待房间:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接) 

就基础的basic地图,这个地图将是玩家通过连接之后前往的地图

然后我们对第三人称的蓝图进行更改:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

第一个的意思是你打开了waitmap,然后作为listen监听服务端【就是说你即是服务端又是客户端】

第二个的意思是你通过控制台进入第一个的ip地址的关卡。【Open+空格+你的ip地址

假如你拥有两个电脑【真的有将游戏打包给另一台电脑即可】,那么,作为服务器的电脑按下1,进入等待房间,客户端的电脑这个时候按下2即可进入1所在的等待房间。

这里两者就可以在一起行动了。

Ip地址的查看

查看自己的ip地址,打开cmd,然后输入ipconfig

然后在这里看你的ip地址:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接) 

C++

首先我们制作函数,如果不知道怎么做的看这个:

ue4/5蓝图与c++混用基础入门的基础操作(适合有蓝图基础和c++基础的新手,创建自己的蓝图)_ue4蓝图和c++混合开发_多方通行8的博客-CSDN博客

然后在角色的头文件里面:

添加这几个函数:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

代码:

//打开等待关卡
	UFUNCTION(BlueprintCallable)
	void openWaitMap();
	
	//进入等待关卡
	UFUNCTION(BlueprintCallable)
	void intoWaitMap(const FString& Address);


	UFUNCTION(BlueprintCallable)
	void CallClientToMap(const FString& Address);

之后在cpp中实现:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

代码:

void AMorePersonTestCharacter::openWaitMap()
{
	//创建并获取世界
	UWorld* world = GetWorld();
	//判断世界是否有效
	if (world)
	{
		//打开等待关卡,变成监听
		world->ServerTravel("/Game/Map/WaitMap?listen");
	}
}

void AMorePersonTestCharacter::intoWaitMap(const FString& Address)
{
	//需要这个#include "Kismet/GameplayStatics.h"头文件
	//这里的*Address是c风格字符串
	UGameplayStatics::OpenLevel(this, *Address);
}

void AMorePersonTestCharacter::CallClientToMap(const FString& Address)
{
	//创建控制器并找到赋予
	APlayerController* playerControlRef= GetGameInstance()->GetFirstLocalPlayerController();
	//判断是否有效
	if (playerControlRef)
	{
		playerControlRef->ClientTravel(Address,ETravelType::TRAVEL_Absolute);
	}
}

 之后来到蓝图中调用就是:

UE4/5多人游戏详解(一、基础理论与局域网内部的连接)

这里的地址只需要输入ip即可。

 

到了这里,关于UE4/5多人游戏详解(一、基础理论与局域网内部的连接)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • K8S基础理论,核心组件,数据流向详解

    目录 第一章.k8s概述 1.1.什么是云原生 1.2.什么是K8S 1.3.K8S的优势 1.4.K8S的功能 1.5.K8S 的特性: 1.6.Kubernetes 集群架构与组件 第二章.K8S的核心组件 2.1.Master 组件 2.2.配置存储中心 2.3.Node 组件 第三章.Kubernetes 核心概念 3.1.Pod 3.2.Pod 控制器 3.3.Label 3.4.Label 选择器(Label selector) 3.5.S

    2024年02月03日
    浏览(34)
  • PID理论基础及代码详解【stm32标准库】

    只考察控制对象当前的状态值 。 为了能够控制温度,速度等具有惯性性质的利用位式控制算法,框图如上。 以温度控制为例:图如下所示。 用户设定为SV,假设设定温度为 80 度 ,通过传感器将控制对象的温度PV进行获取。 (注:执行部件在此处可表示为加热器) SVPV时,位

    2024年02月15日
    浏览(24)
  • 【白盒测试】单元测试的理论基础及用例设计技术(6种)详解

    目录 🌞前言 🏞️1. 单元测试的理论基础 🌊1.1 单元测试是什么 🌊1.2 单元测试的好处 🌊1.3 单元测试的要求 🌊1.4 测试框架-Junit4的介绍 🌊1.5 单元测试为什么要mock 🏞️2. 单元测试用例设计技术(6种) 🌊2.1 语句覆盖 🌊2.2 判定覆盖【也称分支覆盖】 🌊2.3 条件覆盖

    2024年04月27日
    浏览(27)
  • 反无人机系统技术分析,无人机反制技术理论基础,无人机技术详解

    近年来,经过大疆、parrot、3d robotics等公司不断的努力,具有强大功能的消费级无人机价格不断降低,操作简便性不断提高,无人机正快速地从尖端的军用设备转入大众市场,成为普通民众手中的玩具。 然而,随着消费级无人机市场的快速增长,功能越来越先进的新式无人机

    2024年02月19日
    浏览(38)
  • 【UE4】多人联机教程(重点笔记)

    1. 创建房间、搜索房间功能 2. 根据指定IP和端口加入游戏 1. 新建一个第三人称角色模板工程 2. 创建一个空白关卡,这里命名为“InitMap” 3. 新建一个控件蓝图,这里命名为“UMG_ConnectMenu” 在关卡蓝图中显示该控件蓝图 打开“UMG_ConnectMenu”,添加如下控件 首先添加创建房间按

    2024年02月14日
    浏览(27)
  • 分布式理论基础:BASE理论

    BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。 分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。

    2024年02月04日
    浏览(37)
  • UE4 中可全局获取的变量(例如游戏实例、玩家控制器等) 详解

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

    2024年02月06日
    浏览(42)
  • SQLserver基础入门理论(超基础)

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月10日
    浏览(40)
  • 数据库基础理论

    数据:描述事务的符号记录,包含但不限于数字、 文字、图形、图像、声音、语言等。数据有多重形式,它们都可以经过数字化后存入计算机。 数据库:数据仓库。是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和

    2024年01月21日
    浏览(36)
  • 微服务基础理论

    2014,微服务:架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 对应的是过去的单体应用:ALL IN ONE 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;(和ABB包想法有点儿像,进一步粒化。软件工程在原子化的方向上

    2024年02月15日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包