2.4 - 网络关联性(第四部分-组合方案)

2_4.png

为能同时从 服务器客户端 进行查看,请在 Play (运行)的下拉框中,设置 Number of Clients (客户端数量)区域为2。

概述

示例2.2和2.3都失败了,因为两者都无法处理箱子示例所要完成的两个内容:

  • 在互动时播放瞬间效果。

  • 保留随时间而变化的Actor状态变更。

示例2.4提供了通过组合2.2和2.3中使用的技术的混合方案来有效解决此问题。 Multicast函数处理在此特定时间的客户端相关的瞬间黄金特效播放,同时无论箱盖打开还是关闭都保留复制的布尔值。 如果箱子在初始的开箱过程中对客户端而言无关联性,则客户端将仅仅在箱子与它们关联时看到箱盖打开。

蓝图详细信息

BP_Relevancy_Replication_Combined 蓝图的事件图表中,如同下方的带注释的图,OnChestTouch被覆盖以使用RepNotify变量的组合以及Multicast复制函数。

2_4_Eventgraph.png

对具有两个组件的箱子进行正确显示: 一个组件为瞬间(黄金粒子),而另一个组件为持续状态(箱盖被打开)。 使用Multicast以处理瞬间事件,而RepNotify变量处理持续状态。

下方是在变量 bChestOpened 被更新时调用的OnRep函数。

点击查看放大图片

本示例解决了存在的问题并展示了对Multicast函数和RepNotify变量的正确使用。 这个结果是我们在网络游戏中打开宝箱所期待见到的。