У меня проблемы с 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?");
}
}