虚幻引擎,如何将 Actor 仅复制到某些客户端

问题描述 投票:0回答:1

我希望能够在服务器上生成一个复制角色(任何角色),并让它仅复制到某些客户端。例如,假设我们有一个团队正在处理一个项目。我想与我的其他一些也连接到服务器的队友分享我的部分设计(可以是任何 UE actor),并让他们与我一起实时调整它。然后,一旦我们满意,我们就会将其复制到所有连接的客户端。如何实现这一目标?

我有以下代码,我可以在服务器上生成一个复制演员: 在服务器上生成 actor

接下来,我可以做同样的事情,但将其多播到所有内容: 在客户端和服务器上生成 actor

但这会破坏复制的想法,因为它“由服务器控制”,因此服务器上发生的任何事情都会传播到复制到的每个客户端。因此,我们必须创建自己的复制后端。

我知道有一种称为“复制条件”的东西,您可以将其添加到复制属性中。然而,我不确定如何用 C++ 实现这一点,更不用说蓝图了。我可以两者都做,但蓝图是首选。

提前谢谢您,我在理解这一点时遇到了很多困难。

unreal-engine4 unreal-blueprint unreal-engine5
1个回答
0
投票

我不完全确定。但您可以在服务器上生成演员,并设置适当的所有者。在参与者上,您可以重写一个函数来确定它是否与特定客户端相关。 请参阅https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/GameFramework/AActor/IsNetRelevantFor

https://dev.epicgames.com/documentation/en-us/unreal-engine/actor-relevancy-in-unreal-engine

https://cedric-neukirchen.net/docs/multiplayer-compendium/actor-relevancy-and-priority/

© www.soinside.com 2019 - 2024. All rights reserved.