Wenn ich im Unity-Multiplayer auf die LAN-Host-Taste drücke, wird das zugewiesene Prefab und Runner (Clone) in der Hierarchie angezeigt. Aber es erscheint nicht auf dem Bildschirm. Wenn Sie dann in die Szenenansicht gehen, sehen Sie, dass es ein Objekt gibt, das aber aus irgendeinem Grund nicht sichtbar ist. Was verursacht das Problem und wie behebe ich es?Mein Game-Objekt ist nicht sichtbar, wenn ich im Multiplayer versuche und spawne
Antwort
Es kann viele Probleme geben, aber ich werde Ihnen eine Liste von Dingen geben, die Sie überprüfen müssen.
Ist das Objekt im Host/Server sichtbar? Ist die Kameraposition/-drehung in der Lage, die Position des erzeugten Objekts richtig anzuzeigen? Haben Sie das Objekt mithilfe von Instantiate auf die gleiche Weise wie im Einzelspielermodus erstellt oder die Instanziierungsmethode des Unity-Netzwerks korrekt verwendet?
Diese Unity Networking Tutorial spricht im Detail, wie Multiplayer-Spiel mit einem sehr konkreten Beispiel einrichten. Wenn Sie mit Unity Networking noch nicht vertraut sind, empfehle ich Ihnen, mit dem Lernprogramm zu beginnen. Im Folgenden wird gezeigt, wie Objekte in Multiplayer instanziiert:
[Command]
void CmdFire()
{
// This [Command] code is run on the server!
// create the bullet object locally
var bullet = (GameObject)Instantiate(
bulletPrefab,
transform.position - transform.forward,
Quaternion.identity);
bullet.GetComponent<Rigidbody>().velocity = -transform.forward*4;
// spawn the bullet on the clients
NetworkServer.Spawn(bullet);
// when the bullet is destroyed on the server it will automaticaly be destroyed on clients
Destroy(bullet, 2.0f);
}
Beachten Sie, dass die oben nicht genug Objekte über das Netzwerk zu instanziieren. Es gibt andere Sachen, die eingerichtet werden müssen, um den obigen Code auszuführen. Multiplayer unterscheidet sich stark vom SinglePlayer. Wenn Sie mit dem obigen Code nicht vertraut sind, sollten Sie unbedingt das Unity-Lernprogramm für das Netzwerk lesen.
Ein paar Dinge zu beachten:
- Methode mit markiert werden muss [Befehl]
- Methodenname mit
Cmd
beginnen. - Das verknüpfte Lernprogramm ist wahrscheinlich das nur Tutorial von Unity zur Verfügung gestellt. (Unity Networking ist berüchtigt für seinen Mangel an Dokumentation.)
- 1. Zombie-Prozesse erscheinen, wenn ich Prozesse spawne
- 2. Lehre Fehler, wenn ich versuche, mein Schema
- 3. Mein PHP-Skript ist im Browser nicht sichtbar
- 4. Zusätzliche Instanzvariable im Controller ist nicht sichtbar?
- 5. Überprüfen Sie, welches Element im Ansichtsfenster sichtbar ist (nicht, wenn ein bestimmtes Element sichtbar ist)
- 6. Meine Schaltfläche ist nicht sichtbar, wenn ich die Anwendung ausführen
- 7. Ich versuche minGW zu installieren, aber mein Umweltpfad ist anders und ich kann nicht bearbeiten?
- 8. Unity2D, kann mein Sprite nicht über alle Clients synchronisieren (Multiplayer)
- 9. Wie kann ich feststellen, ob mein tmux-Bildschirm sichtbar ist?
- 10. Warnungsdialogtext nicht sichtbar, wenn colorprimary weiß ist
- 11. Wie swipeToRefresh, wenn RecyclerView nicht sichtbar ist?
- 12. Wenn ich versuche, mein Projekt in NetBeans zu öffnen ist es nicht
- 13. Ist sichtbar im Ansichtsfenster ist sichtbar für alles auf Last
- 14. Fehler, wenn ich kompilieren mein Projekt
- 15. Kann mein Element nicht sichtbar in Selen
- 16. WCF schlägt fehl, wenn mein Tablet nicht im Ladegerät ist
- 17. Blender 2.78a (Wenn ich versuche, mein Objekt zu bewegen und einen Wert einzugeben, funktioniert es nicht)
- 18. Docker Bild ist nicht sichtbar, wenn ich Docker ps laufen
- 19. Der Countdown ist nicht sichtbar, und ich habe einen Fehler
- 20. Cheking wenn div sichtbar ist
- 21. Es scheint, als wenn Firewatir nicht gefunden wird, wenn ich versuche, mein Skript auszuführen?
- 22. Element nicht sichtbar, wenn ich versuche, ein Passwort einzugeben in "Passwort" Textfeld
- 23. Ich habe Apache POI heruntergeladen, aber wenn ich versuche, es zu verwenden, kompiliert mein Code nicht
- 24. ist ('Sichtbar'). == true auf nicht-sichtbar Eltern
- 25. React native - Objekt existiert im Zustand, ist aber nicht definiert, wenn ich versuche, darauf zuzugreifen
- 26. Wenn ich versuche, mein Programm zu starten, wird die GUI nicht geladen und ich kann nicht herausfinden, warum
- 27. Mein Datenattribut ist leer, wenn ich versuche, zu viele Daten darin zu speichern
- 28. Warum ist mein Sequelize-Modell nur dann undefiniert, wenn ich versuche, Suchfunktionen zu verwenden?
- 29. CAShapeLayer ist nicht sichtbar
- 30. Wenn ich versuche und eine Variable speichern, funktioniert es nicht?
Das war eine Menge Informationen, ich fühle mich wie ich habe alles. Danke, dass du dir die Zeit genommen hast, mir zu helfen! – Leo
Ich bin froh, dass es geholfen hat: D – BrokenBacon