1

Я работаю над небольшим сетевым проектом и испытываю трудности с созданием объектов по сети. У меня нет проблем, когда один человек присоединяется к серверу ... Я получаю проблемы, когда присоединяется второй человек - этот второй человек создается только на клиенте первого лица, а другой человек не отображается у клиента второго игрока. Я знаю, что Network.Instatiate должен вызываться на всех клиентах, даже когда они присоединяются позже, но это просто не происходит для меня ... Посмотрите:(Unity) Network.Instantiate не вызывается для всех клиентов

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

ответ

0

Я думаю, это является проблемой на стороне клиента. Всякий раз, когда второй игрок подключается, вы должны вызвать другую функцию, которая получает каждого игрока на сервере и порождает их во взгляде второго игрока. Функция, аналогичная SpawnPlayer().