我的问题是使用" NetMulticast"并没有打电话给客户。
我有这样的功能:
UFUNCTION(BlueprintCallable, NetMulticast, Reliable, Category = "Construct")
void Build(...);
我从我的GameModeBase'中拨打电话。它在服务器上执行,但不在客户端上执行。 该函数属于actor的组件。 组件和演员都在复制(我看到他们的构造函数在客户端上调用)。 ' 建立'在创建actor和组件之后,立即在GameModeBase'的PostInitializeComponents中调用。
有什么我明显做错了,或者我可能没有做过的事情是必需的吗? 我该怎么做才能找到问题?
我正在打印相关活动,演员是" Terrain"及其组件" TerrainMesh"。 也许问题是当我尝试调用build时,客户端上还没有地形? 这似乎是复制系统非常不受欢迎的行为,但是......
LogTemp: GameModeBase | Constructor
LogTemp: Terrain | Constructor SERVER
LogTemp: TerrainMesh | Constructor SERVER
LogTemp: TerrainMesh | Build SERVER <---- The replicated function not beeing replicated.
LogTemp: Terrain | Constructor CLIENT
LogTemp: TerrainMesh | Constructor CLIENT
编辑:
为了简化,我将函数放在actor本身。如果我将代码表示为蓝图,则明确指出它应该复制给所有人,但事实并非如此。
答案 0 :(得分:0)
我想通了,你不能传递对USTRUCT类的引用。