1.4 - 变量复制 (RepNotify)

1_4.png

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

概述

在很多情况下,我们需要对复制的变量变更值执行相应的逻辑。 这些值被标记为 RepNotify ,它们在这个值被变更的任意时刻在网络授权端和远程机处自动调用特殊函数。

本例中,网络授权端控制对标量值的变更,这个值表明使用 RepNotify 变量显示的街道灯光的颜色。 当该值被变更时,调用自动生成的OnRep函数,在本例中会随后更新材质参数。

蓝图详细信息

BP_Stoplight_Variable_RepNotify 蓝图的事件图表中(下图中),您将会看到脚本仅对处理灯光转换逻辑的网络授权端进行调用。 代表灯光状态的 Streetlight Scalar (街道灯光标量)变量被特别标记为 RepNotify,这样在值变更时客户端和服务器同时调用 OnRep_StreetlightScalar 函数。

点击查看放大图片

OnRep_StreetlightScalar 函数随后处理对街道灯光的视觉更新,使之能在所有机器上运行。

您可以通过 Replication (复制)下拉菜单下的变量的 Details (细节)面板来完成对 RepNotify 的变量设置。

1_4_RepNotify.png

通过这种设置,客户端和服务器都能在游戏运行时看到对街道灯光执行的相同序列。