2016-05-02 3 views
0

サーバーのコマンドを実行中にUnityからエラーが発生しました。エラーは次のとおりです。UNET:コマンド機能CmdSpawnPlayerがサーバー上で呼び出されました

コマンド機能CmdSpawnPlayer on server。

UnityEngine.Debug:のlogError(オブジェクト)

NetworkHandler:CallCmdSpawnPlayer(ブール) NetworkHandler:OnEnable()(資産/スクリプト/管理者/ NetworkHandler.csで:69)

UnityEngine.Networking。 NetworkIdentity:UNetStaticUpdate()

私が使用するこれによってコード:

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 
using UnityEngine.Networking; 

public class NetworkHandler : NetworkBehaviour 
{ 
    public Player NetworkPlayer 
    { 
     get; 
     private set; 
    } 

    public bool HasInternet 
    { 
     get 
     { 
      return Network.HavePublicAddress(); 
     } 
    } 

    public bool IsConnectedToServer 
    { 
     get 
     { 
      return networkManager.isNetworkActive; 
     } 
    } 

    [SerializeField] 
    private NetworkManager networkManager; 

    [SerializeField] 
    private GameObject playerPrefab, spectatorPrefab; 

    public void StartClient() 
    { 
     networkManager.StartClient(); 
    } 

    public void StartServer() 
    { 
     networkManager.StartServer(); 
    } 

    [Command] 
    private void CmdSpawnPlayer(bool isSpectator) 
    { 
     SpawnPlayer(isSpectator); 
    } 

    private void SpawnPlayer(bool isSpectator) 
    { 
     if (isSpectator) 
     { 
      NetworkServer.SpawnWithClientAuthority(Instantiate(spectatorPrefab), connectionToClient); 
     } 
     else 
     { 
      NetworkServer.SpawnWithClientAuthority(Instantiate(playerPrefab), connectionToClient); 
     } 
    } 

    private void OnEnable() 
    { 
     if (IsConnectedToServer) 
     { 
      CmdSpawnPlayer(true); 
      Game.CameraHandler.InstantiateMode(); 
     } 
    } 
} 

Unityバージョンは5.3.4f1を使用しています。

この問題を解決するのに役立ちます。用事

Skittluier

答えて

0

オーケー、。私はCmdSpawnPlayer(true)を呼び出したようです。 LocalClientの代わりにサーバーから取得します。

関連する問題