Unity3D. Essayez d'envoyer la commande pour objet, sans autorité

J'ai un multijoueur au tour par tour jeu de stratégie qui a besoin d'un gestionnaire de jeu, de contrôle d'état de jeu actuel (qui est à son tour qu'il est, etc.). Ce gestionnaire doit être commune pour tous les clients, c'est l'état doivent être synchronisés sur le serveur.

Voici comment j'ai fais ceci:
Le jeu de l'objet gestionnaire est NetworkBehaviour et il a NetworkIdentity qui n'est pas acteur local de l'autorité, ni du serveur de l'autorité. J'ai fait une coutume NetworkManager et il génère le Jeu Gestionnaire de connexion de client, de vérifier également si c'est un serveur. Voici un code:

public override void OnClientConnect(NetworkConnection conn)
    {
        ClientScene.Ready(conn);
        if (NetworkServer.active)
        {
            var manager = Instantiate(MultiplayerManagerPrefab, Vector3.zero, Quaternion.identity) as GameObject;
            var tacticsManager = manager.GetComponent<MultiplayerManagerModel>();
            NetworkServer.RegisterHandler(MsgType.AddPlayer, tacticsManager.CreatePlayerOnServer);
            NetworkServer.Spawn(manager);
        }
        ClientScene.AddPlayer(0);
    }

Lorsque je l'exécute sur un serveur, il fonctionne très bien, il crée une instance sur un client et synchronise les variables du serveur au client. Mais lorsque j'essaie d'exécuter des commandes du client, il les ignore, lancer cet avertissement:

Essayer d'envoyer une commande pour objet, sans autorité.
UnityEngine.La mise en réseau.NetworkBehaviour:SendCommandInternal(NetworkWriter,
Int32, String)

Noter que ce Jeu Manager est généré avant tout joueur est parce qu'il doit être responsable pour la ponte des joueurs. Ce que je fais mal?

avez-vous résoudre ce problème?

OriginalL'auteur PanCotzky | 2016-03-19