Всем привет! Недавно начал делать 2D игру на Unity, типа "мафия" и столкнулся с проблемой, нужен мастер сервер. Написал мастер сервер по уроку. Вот и сам скрипт + некоторые свои изменения (Javascript)
Код
#pragma strict private var gameName : String = "WFMafiaGame1"; public var GameName : String; private var refreshing : boolean; private var hostData : HostData[];
public var Spawn : Transform[]; public var Player : GameObject;
function startServer() { Debug.Log("start_server"); Network.InitializeServer(32, 25002, true); MasterServer.RegisterHost(gameName, GameName, "WFMafiaGame"); Debug.Log("Server is connected"); }
function refreshHostList() { MasterServer.RequestHostList(gameName); refreshing = true;
Debug.Log(MasterServer.PollHostList().Length); }
function Update() { if (refreshing) { Debug.Log("start refreshing"); if (MasterServer.PollHostList().Length > 0) { Debug.Log("refreshing true"); refreshing = false; hostData = MasterServer.PollHostList(); } } }
function SpawnPlayer (){ var pos: Transform = Spawn[Random.Range(0, Spawn.length)]; Network.Instantiate(Player,pos.position,Quaternion.identity,0); }
//Messages function OnServerInitialized(){ Debug.Log("Server initialized"); SpawnPlayer(); }
function OnConnectedToServer(){ SpawnPlayer(); } function OnPlayerDisconnected(pl :NetworkPlayer){ Network.DestroyPlayerObjects(pl); }
function OnMasterServerEvent(mse:MasterServerEvent){ if (mse == MasterServerEvent.RegistrationSucceeded){ Debug.Log("register Server"); } }
function OnGUI(){ if (Network.isServer) { if (GUI.Button(Rect(10,10,20,20),"")){ Network.Disconnect(200); Application.LoadLevel(0); } } if (Network.isClient) { if (GUI.Button(Rect(10,10,20,20),"")){ Network.Disconnect(200); Application.LoadLevel(0); } } if (!Network.isClient && !Network.isServer){ GameName = GUI.TextField(new Rect(Screen.width/2 -90, Screen.height/2 - 140, 140, 30),GameName); if (GUI.Button (new Rect (Screen.width/2 - 90, Screen.height/2 - 100, 140,50), "Создать комнату")){ startServer(); } if(GUI.Button (new Rect (Screen.width/2 -90, Screen.height/2 -30, 140,50), "Обновить")){ Debug.Log("Refresh"); refreshHostList(); } if (hostData) { for(var i:int = 0; i <hostData.length; i++) { if (GUI.Button(Rect(100,100,100,50),hostData[i].gameName)){ Network.Connect(hostData[i]); Debug.Log("Connected"); } } } } }
Создав сервер, я столкнулся с вот такой ошибкой, при этом данный сервер не находило.
Помогите парни! В долгу не останусь. P.S. Подключение к интернету есть.
У меня тоже позавчера полдня работало-коннектилось.. Но потом вечером прекратилось и ошибка тоже такая осталась.
У меня роутер. Но ведь до этого соединялось. Раз уж занялся игростроем, то умей и имей: 1) знание иностранного языка и понимание того, что делаешь 2) программы для игростроя, а так же для обработки текстур, моделей, звуков 3) много свободного времени
Сообщение отредактировал WTALKER - Воскресенье, 22 Июня 2014, 08:47
Я об этом не подумал Никто не знает как использовать "ucoz" или другие бесплатные хостинги в качестве сервера? Дело в том, что с мультиплеером сталкиваюсь впервые. P.S. Искал в интернете, одну фигню выдаёт.
Вообщем выбирать есть из чего) На habrahabr.ru была когда то статейка о всех трех серверных решениях. Попробовал найти, не получилось. Может другой кто найдет
Блин, но всё равно player.io не то что нужно. Есть ли у кого скрипт с созданием сервера у себя дома, а другие уже подхватывали и подключались к серверу (не по LAN естественно)
Добавлено (22.06.2014, 23:56) --------------------------------------------- Никто не знает, в юнити примере "Networking" подключение по локальной сети? Если да, то бесполезный хлам.
Добавлено (22.06.2014, 23:57) --------------------------------------------- аааа, пфф. Там тоже такая шняга с мастер сервером.