1

Ich arbeite an einem kleinen Netzwerkprojekt und habe Probleme bei der Instanziierung von Objekten über das Netzwerk. Ich habe kein Problem, wenn eine Person dem Server beitritt ... Ich bekomme Probleme, wenn eine zweite Person beitritt - diese zweite Person wird nur auf dem Client der ersten Person instanziiert und die andere Person wird nicht im Client des zweiten Spielers gesehen. Ich weiß, das Network.Instatiate soll an auf allen Clients aufgerufen, auch wenn sie später kommen, aber es ist einfach nicht für mich passiert ... Werfen Sie einen Blick:(Unity) Network.Instantiate wird nicht für alle Clients aufgerufen

private void SpawnPlayer() 
{ 
    GameObject spawnPoints = GameObject.Find("Spawns"); 
    GameObject player = (GameObject)Network.Instantiate(playerPrefab, spawnPoints.transform.GetChild(Random.Range(0, spawnPoints.transform.childCount - 1)).transform.position, Quaternion.identity,0); 
    //This is just to assign the current player to the shoot button so it knows which one to shoot from 
    if (player.GetComponent<NetworkView>().viewID.isMine) 
    { 
     EventTrigger trigger = shootButton.GetComponent<EventTrigger>(); 
     EventTrigger.Entry entry = new EventTrigger.Entry(); 
     entry.eventID = EventTriggerType.PointerDown; 
     currentPlayer = player.GetComponent<Player>(); 
     UnityEngine.Events.UnityAction<BaseEventData> call = new UnityEngine.Events.UnityAction<BaseEventData>(ShootEventMethod); 
     entry.callback.AddListener(call); 
     trigger.triggers.Add(entry); 
    } 
} 

enter image description here

Antwort

0

Ich denke, das ist ein clientseitiges Problem. Immer wenn der zweite Spieler sich verbindet, solltest du eine andere Funktion aufrufen, die jeden Spieler auf den Server bringt und sie in der Sicht des zweiten Spielers hervorbringt. Eine ähnliche Funktion wie SpawnPlayer().

Verwandte Themen