![【虚幻引擎5 I】RPC的使用](https://evan.beee.top/users/anzai/posts/ue5-1-rpc/thumbnail.png)
【虚幻引擎5 I】RPC的使用
![](https://evan.beee.top/users/anzai/others/Avatar.jpg)
关于RPC
Remote Procedure Calls(远程过程调用),是在本地计算机中调用,在另一台计算机中远程执行的函数。
- 必须从Actor处调用。
- 这个Actor必须被复制(replicated)。
- 如果从服务端调用RPC以在客户端上执行,则只有实际拥有该Actor的客户端才会执行该函数。
- 如果从客户端调用RPC以在服务端上执行,则客户端必须拥有调用RPC所用的Actor。
- Multicast是例外:
- 如果从服务端调用它们,服务端将在其本地执行它们,并在所有当前连接的客户端上执行它们。
- 如果从客户端调用它们,它们将仅在本地执行,而不会在服务端上执行。
- 目前我们有一个对此的限制机制:在给定Actor的网络更新周期内,multicast函数不会复制两次以上。(官方想从长远来看对此进行改进)
Multicast指的是从服务器调用,然后在服务器以及所有当前连接的客户端上执行。
在服务端和客户端的调用详细表格。
![](https://evan.beee.top/users/anzai/posts/ue5-1-rpc/invoke.png)
使用
这是一个开枪特效的例子,原本只会在客户端调用,客户端自己可以看到,其他客户端和服务端都无法看到。
![](https://evan.beee.top/users/anzai/posts/ue5-1-rpc/before.png)
1 | // CombatComponent.h |
1 | // CombatComponent.cpp |
使用Multicast RPC和Server RPC结合,添加一点点代码。
1 | // CombatComponent.h |
1 | // CombatComponent.cpp |
嘿嘿……
![](https://evan.beee.top/users/anzai/posts/ue5-1-rpc/after.png)
- 标题: 【虚幻引擎5 I】RPC的使用
- 作者: anzai249
- 创建于 : 2023-07-05 15:25:18
- 更新于 : 2023-08-20 22:30:07
- 链接: https://anzai.sleepingbed.top/archives/posts/bac6a1f4.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论