UE4学习记录-网络同步总结

本文档是UE4网络同步的学习总结,主要探讨RPC和属性复制的概念及应用。RPC允许服务端和客户端之间触发功能,属性复制则实现服务端向客户端的数据同步。文中强调了使用RPC和属性复制的条件,例如必须在服务端生成Actor并拥有正确的Owner。同时,介绍了RPC的多播和单播场景,以及属性复制的单向特性,以及如何在客户端变化后同步属性值到全网。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UE4学习记录-网络同步总结

概述

这是个人学习记录的概括,因此只会列出我自己理解的要点,可能用到的基本知识我就不赘述了,UE4的官方文档已经讲的很清楚很详细。

前提条件

RPC和属性复制,这是官方文档上提供的唯二用来实现网络同步的方法。RPC和属性复制这两个词的具体意义我不想浪费笔墨说明,看官方文档即可。我想说明的是使用RPC和属性复制的前提条件。

1.客户端连接服务器并加载服务器发过来的Level以后,除却那些静态资源以外,理论上,客户端上的所有Actor均是服务端的副本,服务端才是真正的世界,是各种事件碰撞交汇之地,客户端只是单纯的将服务端的内容演示出来而已,是不具备任何自主权利的(包括代表玩家的PlayerController和Pawn)。

2.只有在服务端生成、随后同步到客户端、并且最外层Owner为拥有链接的PlayerController的Actor才有使用RPC和属性复制的资格

3.服务端和客户端使用的是同一套代码,在编码的时候无时无刻都要注意到这点

4.Actor是承载RPC和属性复制的基本单位,网络信息流仅在不同节点上的同一个Actor中流转,如果某个节点上不存在指定的Actor,那么这个节点实际上并没有参与到网络中来(仅仅对于这个指定的Actor)

第2点需要说明一下,如果某类型Actor的属性中bReplicates为true,那么当我们在服务端生成该类型的Actor对象时,将会自动复制到客户端去,无需任何其他操作。如果要让这个Actor对象能够正常使用RPC和属性复制的话,那么一定要在服务端和客户端同时保证这个Actor对象的最外层Owner为拥有链接的PlayerController(或者更加直白一点:即LocalController)

忍不住就上面进行更加详细一点的说明:如果Actor是Pawn的话,无需我们去动手,Pawn的bReplicat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值