Я пытаюсь породить двух разных игроков, готовых переопределить менеджер лобби Юниона, используя скрипт ниже.На стороне хоста все работает отлично, два моих игрока появляются, но на стороне клиента я получаю следующее сообщение об ошибке:
OnObjSpawn netId: 1 имеет недопустимый идентификатор ресурса UnityEngine.Networking.NetworkIdentity: UNetStaticUpdate ().
и ни один из префабов игрока не появляется на экране.
Может кто-нибудь сказать мне, как правильно зарегистрировать префаб моего игрока на стороне клиента правильно?
public class NetworkCustom : NetworkManager
{
public int chosenCharacter = 0;
//subclass for sending network messages
public class NetworkMessage : MessageBase
{
public int chosenClass;
}
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId, NetworkReader extraMessageReader)
{
NetworkMessage message = extraMessageReader.ReadMessage<NetworkMessage>();
int selectedClass = message.chosenClass;
Debug.Log("server add with message " + selectedClass);
if (selectedClass == 0)
{
GameObject player = Instantiate(Resources.Load("Player1", typeof(GameObject))) as GameObject;
NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}
if (selectedClass == 1)
{
GameObject player = Instantiate(Resources.Load("Player2", typeof(GameObject))) as GameObject;
NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}
}
public override void OnClientConnect(NetworkConnection conn)
{
NetworkMessage test = new NetworkMessage();
test.chosenClass = chosenCharacter;
ClientScene.AddPlayer(conn,0 , test);
}
public override void OnClientSceneChanged(NetworkConnection conn)
{
//base.OnClientSceneChanged(conn);
}
public void btn1()
{
chosenCharacter = 0;
}
public void btn2()
{
chosenCharacter = 1;
}
}