ue4显示变量_UE4网络(三) 同步变量

本文通过实例介绍了UE4中如何使变量在网络中同步,包括Replicated和RepNotify两种属性的使用。Replicated允许客户端创建服务器变量副本,而RepNotify在变量更新时提供一个在服务器和客户端同时执行的函数,用于同步操作。
摘要由CSDN通过智能技术生成

所有示例使用第三人称模板创建的项目并带有初始资源StarterContent

和Actor与Function一样,变量也可以通过修改Replication属性实现网络同步,而变量的Replication属性中有Replicated和RepNotify两种属性,这两种属性分别有什么作用呢?

首先我们操作Replicated:

1、打开 Content/StarterContent/Blueprints中的Blueprint_Effect_Fire 蓝图,在Details面板中找到并勾选Replicates 选项。

2、为蓝图添加一个Text Render组件,并调整到合适的位置。

image.png

3、准备工作完成,下面直接上蓝图。逻辑非常简单,功能是开始运行的时候在服务器上执行CountTimer每秒+1的逻辑并且在TextReder中同步更新显示CountTimer。

image.png

4、把蓝图拖进关卡后点击Play开始运行。

image.png可以看到客户端和服务端都有显示特效,但是服务端的数字会增加到10,而客户端的数字不会增加。这是因为数字增加的逻辑只在服务器上运行。

5、但是我们将CountTimer的Replication属性设置为Replicated呢?

image.png

其他地方不变,我们重新开始运行。

image.png

可以看到,客户端和服务端的数字都发生了改变。因为Replicated会让客户端生成一个服务端的变量副本到本地。

然后,我们来试试RepNotify:

1、打开特效蓝图,修改UpdateTimer函数,增加一段变量增加到10之后不再显示特效的逻辑。

image.png

2、编译运行。

image.png

变量增加到10之后只有服务端隐藏了特效。

3、打开特效蓝图添加一个Deactivated的Boolean的变量并将Replication设置为RepNotify。设置之后可以看到在Functions下面生成了一个OnRep_Deactivated的函数。这是因为RepNotify会提供一个在变量更新时调用并在服务器和客户端上同时执行的函数。

image.png

4、将隐藏特效的逻辑移到OnRep_Deactivated函数中。

image.png

5、修改UpdateTimer函数。

image.png

6、编译运行。

image.png

此时当数字增加到10之后客户端和服务器都隐藏了特效。

通过这次测试我们可以看出,同步变量可以将变量设置为Replicated来在客户端生成一个变量副本,也可以设置成RepNotify,这个属性不仅拥有Replicated的所有操作,还会提供一个函数。这个函数会在变量更新时调用并在服务器和客户端上同时执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值