|
为能同时从 服务器 和 客户端 进行查看,请在 Play (运行)的下拉框中,设置 Number of Clients (客户端数量)区域为2。
概述
示例2.2和2.3都失败了,因为两者都无法处理箱子示例所要完成的两个内容:
在互动时播放瞬间效果。
保留随时间而变化的Actor状态变更。
示例2.4提供了通过组合2.2和2.3中使用的技术的混合方案来有效解决此问题。 Multicast函数处理在此特定时间的客户端相关的瞬间黄金特效播放,同时无论箱盖打开还是关闭都保留复制的布尔值。 如果箱子在初始的开箱过程中对客户端而言无关联性,则客户端将仅仅在箱子与它们关联时看到箱盖打开。
蓝图详细信息
在 BP_Relevancy_Replication_Combined 蓝图的事件图表中,如同下方的带注释的图,OnChestTouch被覆盖以使用RepNotify变量的组合以及Multicast复制函数。
对具有两个组件的箱子进行正确显示: 一个组件为瞬间(黄金粒子),而另一个组件为持续状态(箱盖被打开)。 使用Multicast以处理瞬间事件,而RepNotify变量处理持续状态。
下方是在变量 bChestOpened 被更新时调用的OnRep函数。
点击查看放大图片
本示例解决了存在的问题并展示了对Multicast函数和RepNotify变量的正确使用。 这个结果是我们在网络游戏中打开宝箱所期待见到的。
相关页面
网络连接与多人游戏
组件复制
Actor 的复制
RPC
Networked Play In Editor
|
|