UE4 HTC VIVE - 番外篇 - 局域网联机(一)

--------------------引擎环境配置文件修改与项目在线模式启动修改--------------------

1)我们就直接用默认名创建一个第三人称项目


Paste_Image.png


2)右键资源栏,创建一个新的C++类


创建一个C++类

选择不继承任何UE提供的基类

3)打开【解决方案资源管理器】,找到我们的项目【MyProject】,点开后找到【Config】文件夹,找到【DefaultEngine.ini】文件,添加:

[OnlineSubsystem]  
DefaultPlatformService=Null

DefaultEngine.ini修改


4)找到【Source】文件夹,找到【MyProect.Build.cs】文件,添加:

PrivateDependencyModuleNames.Add("OnlineSubsystemNull");

MyProect.Build.cs修改


5)生成该项目生成完后记得重启一下虚幻引擎,让他重新加载一下配置文件


生成一下,加载配置文件


6)设置一下同时调试的玩家数量,完成后打开Advanced Settings...


设置调试人数和高级设置


7)设置一下窗口大小,这个根据个人习惯来,我是觉得太大不方便,当然双屏的同学可以笑了


窗口显示选项


8)然后点击窗口运行


双窗口显示


此时我们可以看到已经以看到服务器与客户端的虚拟形式表的窗口了


Paste_Image.png

此种用引擎调试是不走网络的,属于走127.0.0.1这种地址返回本机,故只能用于调试用,请不要尝试发布多机测试!

--------------------预习部分--------------------

描述一下联网过程:

1)目标:假设需要使2台机器连接到同一个局域网游戏内
2)过程:

a.打开一台主机上的应用,点击创建房间,(这时候该程序会使用UDP的方式在局域网内广播自己建立主机的消息【广播只存在于UDP协议,使用UDP.sendto向地址255.255.255.255实现局域网广播】)
b.启动另一台机器上的应用点击搜索房间,此时后台开启对XXXUDP端口的监听(这个时候就应该搜到刚才开启的主机所发出的广播消息了)
c.拿到地址然后再进行TCP连接,此时就算是正式完成了局域网连接;

--------------------预习1核心API--------------------

【Switch Has Authority】

此宏用来判断当前流程线所在应用是否为主机,


是否拥有权限,或者直接认为是否是主机好了


输出结果为:
a.当前流程为主机【Authority】;
b.当前流程不为主机【Remote】;

同判断的节点还有【Has Authority】...


has Authority节点
【Create Session】

此节点用来创建房间/主机,并开启UDP广播,
输入参数有:
a.玩家引用【PlayerController】
b.最大连接数量【PublicConnections】
c.是否使用局域网【UseLAN】


创建会话


输出:
d.无异常走【OnSuccess】;
e.发生异常走【OnFailure】;

【Find Session】

此节点用来搜索房间/主机,并开启对UDP端口的监听,
输入参数有:
a.玩家引用【PlayerController】
b.最多返回几个主机的消息【MaxResults】
c.是否使用局域网【UseLAN】


查找会话


输出:
d.流程出同上,
e.返回数组为接收到的主机消息列表【Results】


参数类型为
【Join Session】

此节点使用主机消息引用加入会话,
输入参数有:
a.玩家引用【PlayerController】
b.搜索到的主机结果【Search Result】


加入会话


输出:
c.流输出同上




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE4 HTC VIVE - 番外篇 - 局域网联机(二)

开始之前先说一下网游中服务器与客户端的大致关系:网络游戏中各段关系图客户端职责:1)接收玩家的输入翻译得到【玩家指令】上传服务器;2)接收服务器下发的【游戏指令】并将其实现服务器职责:1)接…

启动文件、简单的消息框

C中打开文件的方法。 1.system(); 函数原型: int system(char *command); 作用:发出一个DOS命令。 特点:该函数是同步的,不灵活。只是能够改为system("start XXX"); 2.WinExec(&#…

UE4 HTC VIVE 多人联机

1. editor的VR模式不支持网络,所以在VR模式下没法调试多人联机程序 2. editor的standalone模式,引擎的源码里面把VR模式关闭了,所以需要修改引擎源码 3.可以在命令行下打开VR模式

.net开发微信公众平台

一、说明:公众平台信息接口为开发者提供了一种新的消息处理方式,只有申请成为开发者后,你才能使用公众平台的开发功能,在这里你需要填写一个URL和一个Token,这两项信息也需要你拥有自己的服务器(外网服务器…

使用客户端对象模型读取SharePoint列表数据

使用客户端对象模型读取SharePoint列表数据 客户端对象模型提供了强有力的方式,从远程客户端应用程序管理列表。1. 管理员身份打开VS,新建项目Windows窗体应用程序,命名ReadSPListData,确保选择.NET Framework 3.5。2. 添加控件。…

UE4 获得player id

获得Player ID 获得Player 位置 获得所有PlayerId

installshield 指定多个自定义路径和文件

1. 在Project Assistant的Application Files标签里面 在Script-defined Folders下面分别创建两个变量AAAA,BBBB。 分别在两个变量下面创建文件夹,A1,B1。 把需要安装在这两个文件夹下的文件分别添加进去。 2. 在Installation Designer标签下&…

用鼠标选择模型表面两点并连线

1.两次鼠标点击分别用两个小球标识点击的位置 2. 鼠标右键实现两个位置之间的连线,并在线的中心位置设置textrender来显示线的长度 3. 设置textrender的朝向始终面向摄像机,并作插值平滑过度 4. 设置鼠标光标可显示,并且关卡可以响应鼠标事件…

java ranger rest_使用REST

使用Spring MVC开发Web应用程序的主要工作就是编写Controller逻辑。在Web应用中,除了需要使用MVC给用户显示页面外,还有一类API接口,我们称之为REST,通常输入输出都是JSON,便于第三方调用或者使用页面JavaScript与之交…

JDK安装与环境变量配置

本文介绍JDK的安装与环境变量配置。 工具/原料 JDK1.7.0 WIN7 方法/步骤 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的…

第一人称视角获得运动方向和视角的夹角

1. GetVelocity获得速度的vector 2. 使用RotationFromXVector和速度的vector得到世界坐标系里速度向量和世界坐标系X轴的夹角 虽然,RotationFromXVector返回的是一个rotation,但实际上只有Yaw值有效,因为Yaw(围绕Z轴的偏转角) 即为速度vecto…

java中CardLayout的使用方法

import javax.swing.*;import java.awt.*; import java.awt.event.*;public class Card extends JFrame{/** JFrame的布局管理器是BorderLayout*/JPanel p;//位于中心区域的面板JButton b1,b2,b3,b4;//位于南部区域的四个按钮JLabel l1,l2,l3,l4;CardLayout c;//设置面板p的布局…

深入浅出UE4网络

UE4中的官方文档结构比较混乱,且有部分错误,不方便学习。笔者试图通过本文,整理出一篇关于UE4网络的文章,方便朋友们对UE4中的网络同步部分的认识,并有进一步理解。如有讲得不清楚明白的地方,还望批评指正。…

java载屁股针_以前常打的“屁股针”,为何现在很少见了?医生告诉你真实原因...

打屁股针应该是每个人的童年噩梦,还记得小时候到医院打针,医生的手还没碰到裤子,就感觉屁股发麻,忍不住拔腿就跑,最终还是被家长逮住,夹在大腿间固定住,防止逃跑,于是在哭喊声中迎来…

Windows中查找文件被何进程使用

这篇文章记录在对文件/文件夹删除、更改,移动时,Windows弹窗提示正在被某程序使用,但又不给出进程名的问题。 方法一、 在任务管理器中,切换到性能项,有一个资源管理器,如下: 进入资源管理器&am…

UE4 多人联机显示每个人的playid

目的:在多人联机模式下,在每个pawn的上方显示textrender,并且在textrender里显示每个pawn的playerid 下面以一个listen server和两个client的方式测试。 1. 创建一个带有textrender的actor,并且勾选其replicated开关 2. 在Chara…

TSubclassOf

在蓝图或C层面调用SpawnActor创建一个actor对象,或者调用SpawnActorDeferred 延迟创建一个actor对象时,都需要一个class类型的参数。 如果在C层面,对象类型是我们自己在蓝图里做的蓝图类,那么C层面需要得到蓝图类型。做法如下&am…

蓝图中实现人物移动1

从Character继承一个蓝图类并编写下面代码1.得到前后移动的方向向量2.得到左右移动的方向向量3. 实现前后移动事件4. 实现左右移动事件5. 实现鼠标左键改变视角和移动方向

Java写一个快速排序_java实现快速排序

以上为思路。总的来说,快速排序也是利用了分治法的思想。基本步骤:1.先选择好合适的主元pivot,2.然后再把比主元小的元素放到主元的左边(右边),把较大的元素放到主元的右边(左边),3.接着再以主元为分界点,把…