Суббота, 20 Апреля 2024, 12:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Свой NetworkManager (нужна помощь)
Свой NetworkManager
allodsДата: Пятница, 15 Января 2016, 23:16 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Ребят помогите с написанием своего 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;
   }
  }*/
    }
}
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Свой NetworkManager (нужна помощь)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг