2017-10-15 3 views
0

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.

https://imgur.com/a/o78i9

Antwort

0

ich es herausgefunden, Sie nicht Referenzen Klassen USTRUCT passieren können.

Verwandte Themen