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日
    浏览(47)
  • PID理论基础及代码详解【stm32标准库】

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

    2024年02月15日
    浏览(37)
  • 【白盒测试】单元测试的理论基础及用例设计技术(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日
    浏览(40)
  • 反无人机系统技术分析,无人机反制技术理论基础,无人机技术详解

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

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

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

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

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

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

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

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

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

    2024年02月10日
    浏览(53)
  • 微服务基础理论

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

    2024年02月15日
    浏览(43)
  • API安全基础理论

    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。通过淘宝API,就算不知道如何操作,也能将产品或服务与其他产品或服务进

    2024年02月13日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包