2016-06-17 3 views
0

Ich kann nicht wirklich herausfinden, wie ich mein Problem lösen kann. Ich habe nach einer Antwort gesucht, aber ich konnte nichts finden.Unity-Netzwerk: kann keine Szenenobjekte auf allen Clients erzeugen

Ich habe eine Schaltfläche in meiner Szene, die sowohl von Client und Host gedrückt werden kann. Wenn die Schaltfläche gedrückt wird, wird in der Szene ein Würfel erstellt. Das Problem ist, dass der Cube nur vom Host erstellt werden kann und der Host der einzige Benutzer ist, der es sehen und manipulieren kann. Mein Code ist:

public class CreateCube : NetworkBehaviour { 


     GameObject cubo; 
     float lastCollisionTime=0; 
     float collisionTime=0; 

     void OnCollisionExit(Collision other) { 

       collisionTime = Time.time; 
       if (collisionTime - lastCollisionTime >1.5) { 
        CmdCreaCubo(); 
        lastCollisionTime = collisionTime; 
       } 
      } 
      } 
     } 
     [Command] 
     void CmdCreaCubo(){ 
      GameObject cubo=Instantiate(Resources.Load("MyPrefabs\\Oggetti\\CubeGrasp")) as GameObject; 
      cubo.transform.position = new Vector3 (-5.88f, 7.51f, -19f); 
      cubo.name = "CubeGrasp"; 
      NetworkServer.Spawn (cubo); 

     } 
} 

Kann mir jemand bitte helfen? Vielen Dank

+0

Hat Ihr NetworkManager den CubeGrasp als registriertes Spawnable-Prefab? – LapisLazuli

+0

ja es hat das CubeGrasp als spawnable prefab @ LapisLazuli registriert – Inis

Antwort

0

Statt einfach Instantiate verwenden Sie sollten Network.Instantiate

Die angegebene Fertig auf allen Clients im Spiel werden instanted verwenden müssen. Die Synchronisation wird automatisch eingerichtet, so dass keine zusätzliche Arbeit erforderlich ist beteiligt.

Verwandte Themen