PRC:Remote Procedure Call(远程过程调用) (客户端Client→服务器Server→客户端Client)之间的通信
例如: 当有个Actor在一个客户端中设置为复制(Replicted), 这个Actor就会被复制到另一个客户端当中 (复制出来的Actor是模仿服务器的)
UE4-RPC特点: 简单易用,无需了解网络底层 缺点:只适用于局域网
网络基础
IP:计算机地址 端口:软件地址
TCP协议:可靠的数据传输协议 Transmission Control Protocol 传输控制协议 (通过三次握手,数据校验、保证传输数据的正确性和完整性)
UDP协议:不可靠传输协议 User Datagram Protocol 用户数据报协议(无连接协议) (客户端只管发,只能保证数据正确,但不保证完整)
Actor的复制:Repliction
文档(4.27)https://docs.unrealengine.com/4.27/zh-CN/InteractiveExperiences/Networking/Actors/ 要让Actor联网同步,必须打开Actor复制相关的选项
Component复制
Actor同步后,Component并不会跟着同步,需要手动打开Component的复制(Repliction)
属性(变量)复制
Replicated:同步复制 RepNotify:同步后回调(当变量被修改时,会触发回调函数)
Actor的拥有权:Owner
事件的调用和执行
为了防止作弊,于是有了4种调用事件的方式
- 【Not Replicated】默认调用模式
本地调用,不与服务器或客户端进行同步
- 【Muticast】 广播
只能服务器调用,客户端全部执行
- 【Run on Owning Client】服务端调用,客户端执行
服务器可以调用客户端的函数
- 【Run on Server】 客户端调用,服务段执行
客户端可以调用服务器的函数(然后同步给其他客户端)
可靠性:Relicast
用于重要数据传输
优点:优先发送,不会丢失信息 缺点:过多使用会造成网络拥堵(不适合放在循环里)