UE4 HTC VIVE - 局域网联机(基础知识A)

发表于2017-04-12
评论6 4.6k浏览
本篇文章主要给大家介绍的是UE4引擎在做HTC VIVE开发局域网联机的教程。(此篇只作为设置与预习api和相关知识点,近几天将陆续完成一个简单联网Demo的讲解)

美工同学看到C++不要慌,都是粘贴复制操作,不漏看就肯定能跑起来

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

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

创建一个第三人称项目

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...
 
Paste_Image.png


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

Paste_Image.png


8)然后点击窗口运行
 
窗口播放

显示结果

此种用引擎调试是不走网络的,属于走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】。。。


【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.流输出同上

--------------------预习部分2RPC(可以不看)--------------------

RPC大家可以略作了解,(作用归纳下来就是实现服务器与客户端的函数互调,即UE4中函数复制的下层实现原理,
因为是客户端与服务器的函数不在同一内存是没法互调的,RPC架构则可以做出这种效果)

直接看知乎上的解释 https://www.zhihu.com/question/25536695

本篇做环境搭建和API预热,对这个话题感兴趣的小伙伴可以留言提问,近期会更新局域网联机第二篇有好的问题我会在之后的帖子里解答

传送门:

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引