Demo NetDriver,负责记录和回放之前的游戏记录。这就是录像回放的原理。 Becon NetDriver,负责超出“正常”游戏流量的网络流量 自定义NetDrivers也可以由游戏或者应用程序实现和使用。 NetConnections表示连接到游戏的单个客户端(或者更一般的说,连接到NetDriver)。端点数据不是由NetConnections直接处理的,NetConnections会转...
用于回放的UDemoNetDriver会绑定一个LevelCollection(通过传入PlayReplay的参数LevelPrefixOverride来决定)。当触发回放逻辑后,即UDemoNetDriver::TickDispatch每帧解析回放数据时,我们也会通过FScopedLevelCollectionContextSwitch主动切换到当前DemoNetDriver绑定的LevelCollection,保证解析回放数据时可以通过Outer找到回放场景(Dyna...
游戏运行的任何时候我们都可以通过StartRecordingReplay执行录制逻辑,然后通过初始化函数创建DemonetDriver、DemonetConnection以及对应的ReplayStreamer。 DemonetDriver在Tick的时候会根据一定规则对当前场景里面的同步对象进行录制,录制的数据先存储到FQueuedDemoPacket数组里面,然后再写到自定义ReplayStreamer的FArcive里面缓存。
游戏运行的任何时候我们都可以通过StartRecordingReplay执行录制逻辑,然后通过初始化函数创建DemonetDriver、DemonetConnection以及对应的ReplayStreamer。 DemonetDriver在Tick的时候会根据一定规则对当前场景里面的同步对象进行录制,录制的数据先存储到FQueuedDemoPacket数组里面,然后再写到自定义ReplayStreamer的FArcive里面缓存。
1、Game NetDriver:负责标准游戏网络流量 2、Demo NetDriver:负责录制或回放先前录制的游戏数据,这就是重播(观战)的工作原理。 3、Beacon NetDriver:负责不属于“正常”游戏流量的网络流量。 当然,也可以自定义 NetDrivers,由游戏或应用程序实现并使用。
DemoNetdriver:继承自NetDriver,专门用于宏观地控制回放系统的录制与播放。 Demonetconnection:继承自NetConnection,可以自定义实现回放数据的发送位置。 FReplayHelper:封装一些回放处理数据的接口,用于将回放逻辑与DemoNetDriver进行解耦。 XXXNetworkReplayStreamer:回放序列化数据的存储类,根据不同的存储方式有不同的具体实...
当我们通过RecordReplay开始录制回放时,UReplaySubsystem会创建一个新的DemoNetDriver并初始化DemonetConnection、ReplayHelper、ReplayStreamer等相关的对象。接下来便会在每帧结尾时通过TickDemoRecord对所有同步对象进行序列化(序列化的逻辑完全复用网络同步框架)。
- FReplayHelper:封装一些回放处理数据的接口,用于将回放逻辑与DemoNetDriver进行解耦。 - XXXNetworkReplayStreamer:回放序列化数据的存储类,根据不同的存储方式有不同的具体实现。 3.3.1 数据的存储和读取概述 在前面的示例中,我们通过命令demorec将回放数据录制到本地文件,然后再通过命令demoplay找到对应名称的录制并...
在UNetDriver::TickDispatch中接收网络数据,通过UNetConnection::ReceivedRawPacket将数据包传递到对应的连接中.(如果NetConnection不存在,则进行Handshaking) UIpNetDriver 负责标准网络连接 ISocketSubsystem::GetLocalBindAddr\ISocketSubsystem::BindNextPort确定我们将绑定的IP和端口 UDemoNetDriver 负责录制回放。 UWebSo...
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")角色蓝图里的复制状态也设置了,组件里的复制也设置了.然而播放时只有坐标和朝向是对的, 播放的特效和动作都没有 Dsingol 融会贯通 8 参考资料:wiki.unreal...