
UE4多人联网
文章平均质量分 52
雨凛星星海
企鹅:843224210
展开
-
UE4联网6——UI同步
先看一下之前GameMode里的任务完成方法。最下面的那个是蓝图实现方法在单机版本中是在GameMode蓝图中显示UI在多人游戏中只有服务端会显示UI如下是使用专用服务器开的两个客户端(中间都没有显示UI),但是一个进入通关区域内的玩家视野变了,这符合上面PC的设置视野目标逻辑。如果一个玩家使用监听服务器,另一个玩家使用客户端呢?如下用客户端进入通关区域的时候客户端的视野变了,服务端的视野没变,服务端显示了UI客户端没显示。显示UI的逻辑是写在Gam...原创 2021-02-18 23:51:11 · 1851 阅读 · 0 评论 -
UE4联网5——GameMode复制多播函数
在这段代码中获取gm的时候服务器是能获取到的客户端得到的是空的因为gamemode只存在于服务器。所以客户端就不能调用角色的禁用输入和在屏幕上显示UI了。但是服务器上运行的这条代码在客户端上也运行了,这条代码属于后台运行所以我们要在客户端上调用上面的这个方法要怎么办呢?复制?可是客户端上根本就获取不到GameMode这个类实例。想要复制GameMode要用到UE4Gameplay架构中的的GameState这个类在编辑器中创建基于GameStateBase的C++类。..原创 2021-02-18 23:21:19 · 965 阅读 · 1 评论 -
UE4联网4——服务器变量更新回调函数
服务器变量更新需要更新UI的情况在联网游戏中经常需要用到。比如boss的血量在服务器上发生变化需要反应到各个客户端上。这就涉及到ReplicatedUsing标签的使用了。ReplicatedUsing 一般出现在函数的声明中,表示当该变量在服务器上变化时,会调用事先绑定好的回调函数(函数名一般以OnRep开头),需要注意的是服务端不会自动调用绑定好的该回调函数,此时需要通过代码手动调用.设置服务器变量变化后的回调函数ai状态的变化在服务器服务器需要手动调用改变状态 客...原创 2021-02-18 23:04:56 · 810 阅读 · 0 评论 -
UE4联网3——服务器设置
在前文中的测试都是在启用监听服务器中进行测试的,现在我们要在专用服务器中进行测试。并且角色蓝图中设置的模式是自动占有玩家。在play选项中把玩家人数设置成2的情况下是在 监听服务器获取玩家0,然后玩家1从天而降。(表现)我们应该在gamemode里面分配玩家。先把角色蓝图在场景中删除。打开worldSetting 分配角色蓝图并在场景中放置player start 的actorgamemode会在场景中遍历player start 随机找一个在该位...原创 2021-02-18 22:49:02 · 1248 阅读 · 0 评论 -
UE4联网2——视角同步
在做完子弹的同步后发现和客户端和服务器的玩家的仰角是不同步的。所以在角色代码中加入tick函数更新玩家的仰角pitch。这里我们需要用到一个变量RemoteViewPitch这是在pawn中定义的已经复制的公有变量(rpc)值得注意的是它是个uint8的 变量 所以只能存1~255的数字在复制的过程中需要对这个变量进行解压和压缩。查下这个变量的引用因为只能传输最大255的数值所以传给远端的时候要进行一个*255/360的缩放。所以我们这么写只在远端执行下面逻辑..原创 2021-02-18 22:37:39 · 574 阅读 · 0 评论 -
UE4联网1——子弹同步
首先在ue4中联机有个专业术语叫——Replication(复制)这保证服务器和客户端的实时同步,服务器会不断地向客户端发送更新数据。在ue4中射击类型的游戏在运行的时使用多个玩家,并在窗口上运行。会有一个窗口充当服务器,其余的时客户端在没有实现同步的时候,经常会给人一种很违和的感觉。比如客户端射击生成子弹在服务器这边则没有任何效果。服务端生成子弹在客户端上也没有任何效果。也就是服务端和客户端是不同步的。在子弹类构造函数中添加以下代码编译运行游戏,发现现在控制服务端角色...原创 2021-02-18 22:29:48 · 1730 阅读 · 0 评论