Im Moment habe ich ein Multiplayer-Spiel, bei dem der Spieler Projektile auf andere Spieler abfeuert, die eine bestimmte Menge an Blasen haben. Sobald ein Spieler alle seine Blasen verloren hat, verlieren sie.Wie kann man ein Kindobjekt eines anderen Spielers in UNET zerstören?
Das Problem, das ich vorher hatte, war, dass ein erster Spieler auf einem Bildschirm die Blasen eines zweiten Spielers erschießen konnte, aber nicht alle Blasen auf dem Bildschirm des zweiten Spielers platzten, also versuche ich es über den zu synchronisieren Netzwerk irgendwie.
Das Problem, das ich sehe, ist, dass NetworkServer.Destroy das Finden des GameObject, das Sie durch seine NetworkIdentity zerstören wollen, aber nur das root Player GameObject erlaubt, die NetworkIdentity-Komponente darauf zu haben. Wie kann ich die Zerstörung eines Child-Objekts eines Players am besten synchronisieren?
Ich bin nicht gut mit Vernetzung vertraut, aber hier ist ein Vorschlag für eine mögliche Lösung. https://docs.unity3d.com/Manual/UNetActions.html Sie könnten jedem untergeordneten Objekt eine eindeutige Nicht-Netzwerk-ID geben und einen Remote-Aktionsanruf tätigen (siehe den Link), der dann jedem Client mitteilen würde/Server to Zerstöre das Objekt, sorge dafür, dass du deinen eigenen NetworkServer.Destroy-Aufruf in gewisser Weise machst. – Doh09