Unreal Engine 网络系统(四):UEC++的RPC
创始人
2025-05-31 23:30:12
0

目录

行为同步

On Server:服务端的RPC代码

On Client:客户端的RPC代码

NetMulticast:广播的RPC代码

属性同步


行为同步

借助UFUNCTION进行函数标记

  • UFUNCTION(Server):声明一个在客户端调用,在服务端执行的函数
  • UFUNCTION(Client):声明一个在服务端调用,在客户端执行的函数
  • UFUNCTION(Server):声明一个在服务端调用,在所有终端执行的函数

注:RPC通信函不能有返回值

On Server:服务端的RPC代码

  • UFUNCTION中有三个参数:Server,WithValidation ,Reliable
    • Server:上一节已经说了
    • WithValidation:验证
    • Reliable:可靠传输,保证消息传递到Client(TCP)
  • RPC函数,有三种:
    • 本体:调用
    • 本体_Implementation:执行
    • 本体_Validate:验证逻辑
      • 返回true或false,false表示Client作弊,直接踢掉

On Client:客户端的RPC代码

  • 原理与Server所述类似
  • Client端不需要Validate(验证) 

NetMulticast:广播的RPC代码

  • 原理与Server所述类似
  • Client端不需要Validate(验证) 

属性同步

参数(属性)同步需要将参数注册到复制参数列表,借助UPROPERTY()宏进行标记,并且参数同步操作必须在服务端进行修正,客户端直接修改无法达到目的。

  • UPROPERTY(Replicated):标记参数为复制参数
  • UPROPERTY(ReplicatedUsing=函数名):标记参数为复制参数,复制操作会回调函数,函数需要使用UFUNCTION标记(向除Server外所有终端进行通知,必须满足相关性
  • 标记完成后需要绑定到复制参数列表
    • 所有需要同步的参数都需要绑定到复制参数列表,以便引擎可以方便进行管理
    • 绑定需要实现函数GetLifetimeReplicatedProps,并使用宏DOREPLIFETIME进行注册
    • C++里需要手动回调,而蓝图里自动回调

属性同步复制条件

  • COND_InitialOnly:该属性仅在初始数据组尝试发送
  • COND_OwnerOnly:该属性仅发送至actor的所有者
  • COND_SkipOwner:该属性将发送至除所有者之外的每个连接
  • COND_SimulatedOnly:该属性仅发送至模拟Actor
  • COND_AutonomousOnly:该属性仅发送至自主Actor
  • COND_SimulatedOrPhysics:该属性将发送至模拟或bRepPhysics actor
  • COND_InitialOrOwner:该属性将发送初始数据包,或者发送至actor所有者
  • COND_Custom:该属性没有特定条件,但需要通过SetCustomIsActiveOverride 得到开启/关闭能力(如果没有特殊需求少自定义)

属性复制条件可以使得程序员对复制属性的方式和时机进行精细控制

总结:

  • 对象Actor必须开启网络复制,其属性才能够完成同步
  • 同步中,如果属性变化需要得到通知,尽量不要使用轮询的方式更新,应使用通知方式
  • 同步属性应该在Server完成,禁止在Client操作(不会同步 )
  • 通常同步数据类型需要使用UE的Gameplay为基础的变量
  • 当属性类型为Actor,注意Actor复制引用的相关操作

相关内容

热门资讯

讽刺的词语解释及造句 讽刺的词语解释及造句  词目  讽刺  拼音  fěng cì  基本解释  用比喻、夸张等手法对人...
妄自菲薄造句 妄自菲薄造句9篇妄自菲薄造句1  1、当我们应对挑战时,既不宜妄自尊大,也不可妄自菲薄。  2、我们...
丘陵的解释及造句 丘陵的解释及造句  丘陵拼音  【注音】: qiu ling  丘陵解释  【意思】:连绵成片的小山...
“天会”造句 201、 我儿子保罗曾经对我说过,那个在青年队的14岁小正太总有一天会成为一个超顶级球员的。202、...
妻室的解释及造句 妻室的解释及造句  妻室拼音  【注音】: qi shi  妻室解释  【意思】:<书>妻子。  妻...
复兴的解释及造句 复兴的解释及造句  复兴拼音  【注音】: fu xing  复兴解释  【意思】:(1)衰落后再兴...
“谈笑风生”造句 1、他们谈笑风生地走进了校长办公室。2、人少言寡语不一定大智大勇,谈笑风生不一定是不严肃。3、我们走...
闷气的拼音解释及造句 闷气的拼音解释及造句  闷气拼音  【注音】: men qi  闷气解释  【意思】:2(mēqì)...
听差的拼音解释及造句 听差的拼音解释及造句  听差拼音  【注音】: ting cha  听差解释  【意思】:旧时指在机...
帘子的拼音解释及造句 帘子的拼音解释及造句  帘子拼音  【注音】: lian zi  帘子解释  【意思】:<口>帘②:...
慢慢地如何造句 慢慢地如何造句(精选70句)  造句是指用词语组织句子,下面是小编整理的慢慢地如何造句(精选70句)...
司空见惯的意思是什么-词语用... 其实人生便像是是平日司空见惯的太阳,它日复一日地遵循着东升西落的轨道。那么,司空见惯的具体意思是什么...
用不容置疑怎么造句 用不容置疑怎么造句用不容置疑怎么造句1  一、一切不容置疑,男人的霸气通过一种温暖的手段淋淳尽臻地表...
鼻音的解释及造句 鼻音的解释及造句  鼻音拼音  【注音】: bi yin  鼻音解释  【意思】:口腔气流通路阻塞,...
以此为鉴的意思并造句 以此为鉴的意思并造句  以此为鉴是一个常见的汉语词汇,是什么意思呢?要怎么造句?以下是小编整理的以此...
生财之道的造句 生财之道的造句(精选50句)  造句指懂得并使用字词,按照一定的句法规则造出字词通顺、意思完整、符合...
热症的解释及造句 热症的解释及造句  热症拼音  【注音】: re zheng  热症解释  【意思】:中医指发热、口...
博览群书造句   博览群书:广泛地阅读各种书。形容读书很多。下面是小编为你带来的博览群书造句,欢迎阅读。  博览群...
“拿下马来”造句 1、 说罢,先将庞昱拿下马来,差役掏出锁来锁上。2、 我会让Mas将这个消息封锁,等公司拿下马来西亚...
美轮美奂的意思和造句 美轮美奂的意思和造句  美轮美奂就是形容建筑物的高大、漂亮,我们看看下面的美轮美奂的意思和造句。  ...