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

私はこのことを考えますクライアント側の問題です。 2番目のプレーヤーが接続するたびに、サーバー内の各プレーヤーを取得し、2番目のプレーヤーのビューでそれらを生成する別の関数を呼び出す必要があります。 SpawnPlayer()に似た関数。

関連する問題