UE4 RPC进行网络同步

说明

基于UE本身提供的RPC同步机制
RPC远程过程调用允许客户端或服务器通过网络连接相互发送消息:
使用时需要注意:
1、必须从 Actor 上调用
2、Actor 必须被复制,注意勾选BP中Replicates,或使变量bReplicates = true
在这里插入图片描述

3、注意如果 RPC 是从Client调用并在Server上执行,客户端就必须拥有调用 RPC 的 Actor。
所以在属性同步的地方设置此Actor的Owner,主要用于网络复制,玩家离开交互时Owner置空
在这里插入图片描述
PS:引申:考虑到每一位客户端对该actor接管网络消息所有权都需要SetOwner,可能会导致网络延迟或安全性隐患,此处可以根据实际情况进行优化为通过经过玩家进行RPC同步,如由玩家的component发起。

从Server调用RPC的作用范围
在这里插入图片描述

从Client调用RPC的作用范围

在这里插入图片描述

DS同步处理
一般建议数据全部由DS服务器持有/转发同步,此处由主端玩家进行数据推送同步
可以理解为主端数据变化 -> 同步DS -> 广播给其他所有客户端
PS:在保证性能的前提下,决策/校验更多在server端处理

服务端的处理:定义自定义事件,注意勾选同步范围,代表客户端同步在仅Server运行
在这里插入图片描述

脚本或蓝图可以主动调用该事件,服务器收到该结构体,广播给其他客户端
在这里插入图片描述

客户端的处理:
在这里插入图片描述

可以自定义函数可由脚本重写,来处理收到消息后的逻辑
在这里插入图片描述

Struct可由各业务自定义,灵活使用
在这里插入图片描述

相关推荐

  1. UE4动作游戏实例RPG Action解析-导语

    2024-06-12 01:28:05       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 01:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 01:28:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 01:28:05       82 阅读
  4. Python语言-面向对象

    2024-06-12 01:28:05       91 阅读

热门阅读

  1. SSID简介

    2024-06-12 01:28:05       32 阅读
  2. Web前端开发缺点:深入剖析与反思

    2024-06-12 01:28:05       39 阅读
  3. vue调用百度api时跨域问题的解决方案

    2024-06-12 01:28:05       27 阅读
  4. Django自定义CSS

    2024-06-12 01:28:05       26 阅读
  5. python连接mysql数据库、FastAPI、mysql-connector-python

    2024-06-12 01:28:05       32 阅读
  6. 【16】编写shell-批量导入mysql的sql语句

    2024-06-12 01:28:05       32 阅读
  7. 2 程序的灵魂—算法-2.2 简单算法举例-【例 2.1】

    2024-06-12 01:28:05       33 阅读
  8. 大数据—数据分析概论

    2024-06-12 01:28:05       30 阅读
  9. 数据结构-哈希表

    2024-06-12 01:28:05       36 阅读
  10. C++的预处理器

    2024-06-12 01:28:05       36 阅读
  11. 数据结构篇其六-串

    2024-06-12 01:28:05       36 阅读
  12. Web前端评价:深入剖析与全面审视

    2024-06-12 01:28:05       33 阅读
  13. 云计算——武汉理工期末复习

    2024-06-12 01:28:05       31 阅读
  14. python将一个图片雕刻镂空成二维码

    2024-06-12 01:28:05       34 阅读