2016-03-26 5 views
1

Ich versuche zu spawnen 2 Spieler (Host und Client) um 2 verschiedene Standorte.Spawn Player an bestimmten Standort Mit Unet

Ich habe keine Ahnung, wie dies zu tun ist, weil der Player automatisch vom Netzwerkmanager erzeugt wird.

Ich habe versucht, die folgenden aber nicht schrecklich :(.

[Command] 
void CmdSpawn() 
{ 
    var go = (GameObject)Instantiate(
       gameObject, 
       transform.position + new Vector3(0,1,0), 
       Quaternion.identity); 

    NetworkServer.SpawnWithClientAuthority(go, connectionToClient); 
} 

Wie kann ich Spawn Player-Objekt an einem bestimmten Ort?

Antwort

5

Networkmanager unterstützt bereits Laich Positionen

Fügen Sie einfach GameObjects hinzu, wo die Spieler spawnen sollen, und geben Sie ihnen die NetworkStartPosition Komponente. NetworkManager erkennt automatisch die Startpositionen und verwendet sie automatisch gemäß deiner Einstellung "Spieler-Spawn-Methode" entweder "Zufall" (eine Spawn-Position wird zufällig für jeden Spieler gewählt) oder "Round Robin" (Spieler # 0 spawnt an der ersten Position), Spieler # 1 in der zweiten und so weiter).

+0

Ich habe diese Komponente angehängt, aber was mache ich danach? Wie kann ich sagen, welcher Spieler wo spawnen soll? – Rana

+0

Ich habe es schon erklärt. Welcher Teil davon ist dir unklar? Wenn Sie bereits eine benutzerdefinierte Laichlogik implementiert haben, um das Startpositions-Problem zu lösen, sollten Sie dies natürlich entfernen, damit Sie die Implementierung von NetworkManager nicht stören. –

+0

Ich habe es zur Arbeit, danke! :) – Rana

1

Gibt es irgendwelche Probleme mit Position für Spielerobjekt in einem Skript zu ändern ? zum Beispiel könnten Sie folgende Skript auf Ihrem Player Objekt versuchen Sie:.

void Start() { 
    if (isServer) // host runs 
    { 
     transform.position = new Vector3(0,0,0); 
    } 
    else if (isClient) // client runs 
    { 
     transform.position = new Vector3(10,0,10); 
    } 
} 
+0

ich konnte, aber als alle Client an den gleichen Orten spawnen ... – Rana

+0

Sie können eine Liste der Spawnpunkt in Ihrem Game-Controller-Objekt hinzufügen. Dann verwende einen Ort zufällig aus der Liste und du hast mehrere Laichorte. – LapisLazuli

+0

scheint logisch, lassen Sie mich versuchen, es wieder zu kommen, danke – Rana

Verwandte Themen