после исправления этого
if (Network.connections.Length >= 1) на это
if (Network.connections.Length = 1)
мое количество ошибок снизилось с 12 на 1 и 3 предупрждения, а вот что делать дальше никак не пойму, помогите плиз
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class Connect : MonoBehaviour
{
public string connectToIP = "127.0.0.1";
public int connectPort = 25001;
// Смешанный GUI для сервера и клиента
public void OnGUI()
{
if (Network.peerType == NetworkPeerType.Disconnected)
{
//Сейчас мы отключены и не являемся клиентом или хостом
GUILayout.Label("Connection status: Disconnected");
connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100));
connectPort = int.Parse(GUILayout.TextField(connectPort.ToString()));
GUILayout.BeginVertical();
if (GUILayout.Button("Connect as client"))
{
// Подсоединяемся к "connectToIP" и "connectPort" как клиент
// В данном случае игнорируем NAT
Network.useNat = false;
Network.Connect(connectToIP, connectPort);
}
if (GUILayout.Button("Start Server"))
{
// Создаем север с 32 клиентами используя порт "connectPort"
// Так же игнорируем NAT
Network.useNat = false;
Network.InitializeServer(32, connectPort);
}
GUILayout.EndVertical();
}
else
{
//Мы имеем подключение(я)!
if (Network.peerType == NetworkPeerType.Connecting)
{
// Статус - пдключение
GUILayout.Label("Connection status: Connecting");
}
else if (Network.peerType == NetworkPeerType.Client)
{
// Статус - клиент
GUILayout.Label("Connection status: Client!");
GUILayout.Label("Ping to server: " + Network.GetAveragePing(Network.connections[0]));
}
else if (Network.peerType == NetworkPeerType.Server)
{
// Статус - сервер
GUILayout.Label("Connection status: Server!");
GUILayout.Label("Connections: " + Network.connections.Length);
if (Network.connections.Length >= 1)
{
GUILayout.Label("Ping to first player: " + Network.GetAveragePing(Network.connections[0]));
}
}
if (GUILayout.Button("Disconnect"))
{
Network.Disconnect(200);
}
}
}
// ВСЕ функции ниже НЕ ИСПОЛЗУЮТСЯ в данном примере, а приведены только для демонстрации.
// Сначала убедитесь в понимании кода, приведенного выше в функции OnGUI()
// Слиентские фукнции, вызываемые Юнити
public void OnConnectedToServer()
{
// Этот КЛИЕНТ подключился к серверу
Debug.Log("This CLIENT has connected to a server");
}
public void OnDisconnectedFromServer(NetworkDisconnection info)
{
// Этот СЕРВЕР или КЛИЕНТ отключился от сервера
Debug.Log("This SERVER OR CLIENT has disconnected from a server");
}
public void OnFailedToConnect(NetworkConnectionError error)
{
// Не удалось поключиться к серверу
Debug.Log("Could not connect to server: " + error);
}
//Серверные фукнции, вызываемые Юнити
public void OnPlayerConnected(NetworkPlayer player)
{
Debug.Log("Player connected from: " + player.ipAddress + ":" + player.port);
}
public void OnServerInitialized()
{
// Сервер инициализирован и готов
Debug.Log("Server initialized and ready");
}
public void OnPlayerDisconnected(NetworkPlayer player)
{
// Игрок отсоединился от player.ipAddress + ":" + player.port
Debug.Log("Player disconnected from: " + player.ipAddress + ":" + player.port);
}
// OTHERS:
// Для полного обзора всех сетевых функций вызываемых Юнити
// следующие четыре так же были добавлены, но они сейчас игнорируются
public void OnFailedToConnectToMasterServer(NetworkConnectionError info)
{
// Не удалось соединиться с мастер-сервером
Debug.Log("Could not connect to master server: " + info);
}
public void OnNetworkInstantiate(NetworkMessageInfo info)
{
// Новый объект был создан info.sender
Debug.Log("New object instantiated by " + info.sender);
}
public void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
{
//Пользовательский код здесь (Ваш код!)
}
}
using System.Collections;
public class Connect : MonoBehaviour
{
public string connectToIP = "127.0.0.1";
public int connectPort = 25001;
// Смешанный GUI для сервера и клиента
public void OnGUI()
{
if (Network.peerType == NetworkPeerType.Disconnected)
{
//Сейчас мы отключены и не являемся клиентом или хостом
GUILayout.Label("Connection status: Disconnected");
connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100));
connectPort = int.Parse(GUILayout.TextField(connectPort.ToString()));
GUILayout.BeginVertical();
if (GUILayout.Button("Connect as client"))
{
// Подсоединяемся к "connectToIP" и "connectPort" как клиент
// В данном случае игнорируем NAT
Network.useNat = false;
Network.Connect(connectToIP, connectPort);
}
if (GUILayout.Button("Start Server"))
{
// Создаем север с 32 клиентами используя порт "connectPort"
// Так же игнорируем NAT
Network.useNat = false;
Network.InitializeServer(32, connectPort);
}
GUILayout.EndVertical();
}
else
{
//Мы имеем подключение(я)!
if (Network.peerType == NetworkPeerType.Connecting)
{
// Статус - пдключение
GUILayout.Label("Connection status: Connecting");
}
else if (Network.peerType == NetworkPeerType.Client)
{
// Статус - клиент
GUILayout.Label("Connection status: Client!");
GUILayout.Label("Ping to server: " + Network.GetAveragePing(Network.connections[0]));
}
else if (Network.peerType == NetworkPeerType.Server)
{
// Статус - сервер
GUILayout.Label("Connection status: Server!");
GUILayout.Label("Connections: " + Network.connections.Length);
if (Network.connections.Length >= 1)
{
GUILayout.Label("Ping to first player: " + Network.GetAveragePing(Network.connections[0]));
}
}
if (GUILayout.Button("Disconnect"))
{
Network.Disconnect(200);
}
}
}
// ВСЕ функции ниже НЕ ИСПОЛЗУЮТСЯ в данном примере, а приведены только для демонстрации.
// Сначала убедитесь в понимании кода, приведенного выше в функции OnGUI()
// Слиентские фукнции, вызываемые Юнити
public void OnConnectedToServer()
{
// Этот КЛИЕНТ подключился к серверу
Debug.Log("This CLIENT has connected to a server");
}
public void OnDisconnectedFromServer(NetworkDisconnection info)
{
// Этот СЕРВЕР или КЛИЕНТ отключился от сервера
Debug.Log("This SERVER OR CLIENT has disconnected from a server");
}
public void OnFailedToConnect(NetworkConnectionError error)
{
// Не удалось поключиться к серверу
Debug.Log("Could not connect to server: " + error);
}
//Серверные фукнции, вызываемые Юнити
public void OnPlayerConnected(NetworkPlayer player)
{
Debug.Log("Player connected from: " + player.ipAddress + ":" + player.port);
}
public void OnServerInitialized()
{
// Сервер инициализирован и готов
Debug.Log("Server initialized and ready");
}
public void OnPlayerDisconnected(NetworkPlayer player)
{
// Игрок отсоединился от player.ipAddress + ":" + player.port
Debug.Log("Player disconnected from: " + player.ipAddress + ":" + player.port);
}
// OTHERS:
// Для полного обзора всех сетевых функций вызываемых Юнити
// следующие четыре так же были добавлены, но они сейчас игнорируются
public void OnFailedToConnectToMasterServer(NetworkConnectionError info)
{
// Не удалось соединиться с мастер-сервером
Debug.Log("Could not connect to master server: " + info);
}
public void OnNetworkInstantiate(NetworkMessageInfo info)
{
// Новый объект был создан info.sender
Debug.Log("New object instantiated by " + info.sender);
}
public void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
{
//Пользовательский код здесь (Ваш код!)
}
}