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,一经查实,立即删除!

相关文章

UIImageView 圆角

UIImageView *image [[UIImageView alloc]init]; image.layer.cornerRadius 10.0;//如果想变圆形,设置这个值为宽度的一半 image.layer.masksToBounds YES;转载于:https://www.cnblogs.com/qianyindichang/p/3779823.html

java 参数 string_java(String和StringBuffer分别作为参数传递)

package com.day8.StringBuffer;public class Demo7StringBuffer {/***常见对象(String和StringBuffer分别作为参数传递)* A:形式参数问题* String作为参数传递* StringBuffer作为参数传递* B:案例演示* String和StringBuffer分别作为参数传递问题*( 基本数据类型的值传递&…

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

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

启动文件、简单的消息框

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

UE4 HTC VIVE - 番外篇 - 局域网联机三

环境设置和检测1.打开引擎下的在线调试引擎在线模式开启2.打开项目的在线调试项目在线模式开启3.检查机器网段我们需要对每台要加入局域网的机器都进行网段检测,这是能客户端能找到主机广播的前提,否则无法搜到主机Windows键R键输入CMD输入ipconfig检查I…

java异常判断_Java异常退出条件的判断示例代码

无论是功能性代码还是算法性代码,程序都是一系列流程的合集既然是流程就分为:一般流程和异常流程;一般流程保证了基本功能;异常流程则是对程序稳定性的保证,不能因为一些非法输入,项目就挂了;注…

POJ 3225 - 区间

待整理。 转载于:https://www.cnblogs.com/e0e1e/p/poj_3225.html

UE4 HTC VIVE 多人联机

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

关于64位Linux配置android开发环境出现 No such file or directory

前几天在64位系统上部署android开发环境的时候出现了这种问题 /aapt: No such file or directory 通过谷老师,知道原理android SDK里面的程序全是32位的,没有64位的。不知道为啥要写个x64, 我们仅仅要安装一下32位的执行库即可了,…

java读取txt文件内容_Java读取TXT文件内容的方法

Java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。…

UE4 远程调用函数

1. Multicast 如果在服务器端调用,则先在服务器执行此函数,然后自动依次在所有客户端执行此函数。 如果在客户端调用,则只在此客户端执行,服务器和其它客户端都不执行。 2. RunOnServer 不管是服务器端还是客户端,都可…

python有监督神经网络程序实例_学习编程|监督学习是什么?怎么用?Python机器学习基础笔记二...

一、机器学习基础概念1.机器学习分类机器学习分为:监督学习、无监督学习、半监督学习等几类。(1)监督学习:从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出…

.net开发微信公众平台

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

python有趣函数_python中有趣的函数

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 ! 0 and x % 3 ! 0>>> filter(f, range…

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

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

UE4 获得player id

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

python学习---语法

python script常见格式: import sys #导入sys模块 from util import * #从util模块导入全部需要的变量,函数等 module[webview,content_shell,chrome] #列表数据结构 number(1,2,5,6,9) #元祖数据结构,不可改变 转载于:https://www.cnblogs.com/hanying/p/3792601.html

WebForm

封装太强 不容易进行单元测试 入门容易,使用难 转载于:https://www.cnblogs.com/xiaocandou/p/3793694.html

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

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