2017-02-20 3 views
-1

Wie kann ich die Spieler abhängig von ihrem Tag im Multiplayer-Modus (mithilfe von UNITY Networking Lobby Asset) zufügen? Zum Beispiel habe ich Spieler mit dem Tag "Flee" erzeugt, dann möchte ich randomisieren, um unter ihnen zu bestimmen, wer der "Jäger" sein wird. Also, wenn es 5 Spieler gibt, sollten 4 von ihnen "Flee" -Tag haben und der andere sollte "Chaser" sein. Ich habe versucht, dies zu tun, aber was passiert, ist in jedem Client, sie randomize Zahlen so manchmal Client A wird als "Chaser" in seiner Sicht markiert und in anderen Sicht ist er als "Flee" getaggt. Was also passiert, ist, dass es in jedem Client zufällig ist, aber was ich will, ist die zufällige Auswahl im Server, nur um das "Chaser" -Tag zu bestimmen. Hilfe würde sehr geschätzt werden. Vielen Dank!Randomisierung von Spielern abhängig vom Tag im Multiplayer-Netzwerk Unity

Antwort

0

Sie müssen Overide-Funktion OnServerAddPlayer NetworkManager oder neues Skript hinzufügen, um NetworkManager OnServerAddPlayer zu steuern.

Ich war verwenden overide NetworkManger und ich nenne es CNetworkManger dann in Inspektor ich füge 2 Objekt angeschlossen NetworkIdentity in Player Prefabs.

public override void OnServerAddPlayer (NetworkConnection conn, short playerControllerId) { 
      var player = (GameObject)GameObject.Instantiate(spawnPrefabs[{{ YOUR TAG INDEX }}], 
       Vector3.zero, 
       Quaternion.identity); 
     }