Unity3d UNET - SpawnWithClientAuthority не имеет полномочий при хосте - PullRequest
0 голосов
/ 25 сентября 2018

У меня проблемы с SpawnWithClientAuthority при "размещении" совпадения с UNET в UNITY3D.Если я создаю автономный сервер и подключаю к нему клиентов, все работает отлично.Если я размещаю игру, в которой я также являюсь клиентом, то по какой-либо причине размещенный клиент не имеет полномочий (hasAuthority имеет значение false).

В моей игре PlayerObject представляет соединение с игроками, а TankPlayer -мой физический игрок (вещь, над которой мне нужно иметь полномочия - чтобы делать такие вещи, как включить камеру).

Вот мой код вызова:

[Command]
void CmdSpawnPlayer()
{
    GameObject player = Instantiate(m_PlayerTank);

    NetworkServer.SpawnWithClientAuthority(player, connectionToClient);

}

Это должно породить танк из моего m_PlayerTankprefab (он имеет "проверенные полномочия клиента). Вот мои объекты инспектора:

Инспектор NetworkManager

PlayerObject

_PlayerTank

Есть ли способ убедиться, что у хост-клиента есть права доступа в моих скриптах? Вот где я проверяю права доступа:

new void Start ()
{
    base.Start();

    if (hasAuthority)
    {
        m_Camera.gameObject.tag = "MainCamera";
        m_Camera.gameObject.SetActive(true);
        Debug.Log("auth");
    }
    else
    {
        Debug.Log("No auth?");
    }

}

...