0

I started working with Unity's HLAPI and began with a short tutorial to understand how client and server interact: https://www.youtube.com/watch?v=9VW7ctwvNok&t=458s but I'm getting an error when I call my Commands that don't show up in the tutorial.

Trying to send command for object without authority. UnityEngine.Networking.NetworkBehaviour:SendCommandInternal(NetworkWriter, Int32, String) PlayerController:CallCmdSendClientName(String) PlayerController:Start() (at Assets/Scripts/PlayerController.cs:87)

Trying to send command for object without authority. UnityEngine.Networking.NetworkBehaviour:SendCommandInternal(NetworkWriter, Int32, String) PlayerController:CallCmdSendClientPos(Vector3) PlayerController:Start() (at Assets/Scripts/PlayerController.cs:88)

I have a player prefab that has a NetworkIdentity script and my PlayerController script attached to it so I'm unsure why I'm getting this error. Any help would be greatly appreciated. Thank you!

public class PlayerController : NetworkBehaviour {

    public GameObject bulletPrefab;
    public Transform bulletSpawn;

    public string playerName;
    public Vector3 playerPos;
    public byte[] Tex;          // data coming from CanvasController
    public int texWidth;
    public int texHeight;
    public string Type;         // data coming from CanvasController
    public string Id;           // data coming from GameManager
    public int Strength;        // data coming from PlayerController
    public int Hitpoints;       // data coming from PlayerController
    public bool IsAlive;        // data coming from PlayerController
    private string GetPlayerName()
    {
        switch (Network.player.ipAddress.ToString())
        {
            case "192.168.1.160":
                playerName = "SMO Server";
                break;

            case "192.168.1.161":
                playerName = "SMO Client 1";
                break;

            case "192.168.1.162":
                playerName = "SMO Client 2";
                break;

            case "192.168.1.163":
                playerName = "SMO Client 3";
                break;

            case "192.168.1.164":
                playerName = "SMO Client 4";
                break;

            default:
                playerName = "SMO UNREG";
                break;
        }
        return playerName;
    }
    private Vector3 GetPlayerPos()
    {
        switch (Network.player.ipAddress.ToString())
        {
            case "192.168.1.160":
                playerPos = new Vector3(0, 0, 0);
                break;

            case "192.168.1.161":
                playerPos = new Vector3(-8, 0, 0);
                break;

            case "192.168.1.162":
                playerPos = new Vector3(-3, 0, 0);
                break;

            case "192.168.1.163":
                playerPos = new Vector3(3, 0, 0);
                break;

            case "192.168.1.164":
                playerPos = new Vector3(8, 0, 0);
                break;

            default:
                playerPos = new Vector3(0, 3, 0);
                break;
        }
        return playerPos;
    }

    private void Start()
    {
        if (!isServer)
        {
            CmdSendClientName(GetPlayerName());
            CmdSendClientPos(GetPlayerPos());
        }

    }

    [Command]
    void CmdSendClientName(string name)
    {
        RpcUpdateClientName(name);
    }

    [ClientRpc]
    void RpcUpdateClientName(string name)
    {
        transform.name = name; // Change player name;
    }

    public override void OnStartLocalPlayer()
    {
        GetComponent<MeshRenderer>().material.color = Color.blue;
    }

    [Command]
    void CmdSendClientPos(Vector3 pos)
    {
        RpcUpdateClientPos(pos);
    }

    [ClientRpc]
    void RpcUpdateClientPos(Vector3 pos)
    {
        transform.position = pos;
    }
greyBow
  • 1,298
  • 3
  • 28
  • 62
  • Possible duplicate of [Unity3D. Trying to send command for object without authority](https://stackoverflow.com/questions/36107855/unity3d-trying-to-send-command-for-object-without-authority) – PassetCronUs Oct 23 '17 at 20:39
  • Why are you even hard-coding the IP Addresses "192.168.1.163", "192.168.1.164"? This is bound to fail in the future. – PassetCronUs Oct 23 '17 at 20:56
  • @PassetCronUs for this project each computer is meant to be a distinct player name. – greyBow Oct 23 '17 at 22:51

0 Answers0