2017-06-13 4 views
0

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

1

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:

  1. Methode mit markiert werden muss [Befehl]
  2. Methodenname mit Cmd beginnen.
  3. 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.)
+0

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

+1

Ich bin froh, dass es geholfen hat: D – BrokenBacon

Verwandte Themen