Ребят помогите с написанием своего NetworkManager. Если кто хорошо разбирается посмотрите на код.
В начале я смотрю доступны ли Матчи
Если нет то я создаю Матч и подключаюсь
Если да то подключаюсь
Мне нужно что бы при определенном количестве игроков игра стартовала.
Если включить то что в Update то игра запускается как только подключено больше 1 игрока, но получаю ошибку
Unknown message ID 39 connId:1
UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()
как ее убрать не понимаю
Код
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using UnityEngine.Networking.Types;
using UnityEngine.Networking.Match;
using System.Collections;
namespace UnityStandardAssets.Network
{
public class gameManager : NetworkLobbyManager
{
NetworkMatch networkMatch;
bool loaded;
void Awake()
{
networkMatch = gameObject.AddComponent<NetworkMatch>();
}
public void CheckMatch()
{
networkMatch.ListMatches(0, 20, "", OnMatchList);
}
public void OnMatchList(ListMatchResponse matchListResponse)
{
if (matchListResponse.success && matchListResponse.matches != null && matchListResponse.matches.Count>0)
{
networkMatch.JoinMatch(matchListResponse.matches[0].networkId, "", OnMatchJoined);
}
else
{
this.StartMatchMaker();
this.matchMaker.CreateMatch(
"game",
(uint)this.maxPlayers,
true,
"",
this.OnMatchCreate);
}
}
public void OnMatchJoined(JoinMatchResponse matchJoin)
{
if (matchJoin.success)
{
Debug.Log("Join match succeeded");
NetworkClient myClient = new NetworkClient();
myClient.RegisterHandler(MsgType.Connect, OnConnected);
myClient.Connect(new MatchInfo(matchJoin));
}
}
public void OnMatchCreate(CreateMatchResponse matchResponse)
{
if (matchResponse.success)
{
Debug.Log("Create match succeeded");
NetworkServer.Listen(new MatchInfo(matchResponse), 9000);
matchMaker.JoinMatch (matchResponse.networkId,"",OnMatchJoined);
}
else
{
Debug.LogError ("Create match failed");
}
}
public void OnConnected(NetworkMessage msg)
{
Debug.Log("Connected!");
}
public override void OnServerSceneChanged(string sceneName)
{
Debug.Log("OnServerSceneChanged called");
}
/*void Update(){
if(NetworkServer.connections.Count>1 && !loaded){
ServerChangeScene(playScene);
loaded = true;
}
}*/
}
}