Mein Problem ist, dass eine Funktion mit "NetMulticast" nicht auf Clients aufgerufen wird.NetMulticast | Kein Aufruf in Client
Ich habe eine Funktion wie folgt aus:
UFUNCTION(BlueprintCallable, NetMulticast, Reliable, Category = "Construct")
void Build(...);
, die ich von meinem 'GameModeBase' nennen. Es wird auf dem Server, aber nicht auf den Clients ausgeführt. Die Funktion gehört zu einer Komponente eines Akteurs. Sowohl die Komponente als auch der Akteur werden repliziert (ich sehe, dass ihre Konstruktoren auf dem Client aufgerufen werden). ' Build' wird in PostInitializeComponents der 'GameModeBase' direkt nach der Erstellung des Aktors und der Komponente aufgerufen.
Gibt es etwas, was ich eindeutig falsch mache, oder etwas, das ich nicht getan habe, das ist erforderlich? Was kann ich tun, um das Problem herauszufinden?
Ich drucke das relevante Ereignis, der Akteur ist "Terrain" und seine Komponente "TerrainMesh". Vielleicht ist das Problem, dass das Gelände noch nicht auf dem Client vorhanden ist, wenn ich versuche Build aufzurufen? dass, obwohl wie sehr unerwünschtes Verhalten des Replikationssystems scheinen würde ...
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
EDIT:
es einfacher zu machen, ich habe die Funktion selbst in dem Schauspieler setzen. Wenn ich den Code als Blueprint darstelle, heißt es eindeutig, dass er für alle replizieren sollte, aber nicht.