Руководство API скрипты

NetworkError

перечисления

Описание

Возможны ошибки Networking.NetworkTransport.

Группа возможных ошибок NetworkTransport. Если из функции NetworkTransport возвращается ошибка, вы можете использовать NetworkError, чтобы узнать, какой тип ошибки произошел. Обязательно используйте NetworkTransport.Receive или аналогичный для прослушивания событий такого типа.

// создаём Button (Create>UI>Button) for the host.

// Прикрепляем Button в Инспекторе вашего GameObject.

//В Mode нажмите Button для подключения. Если соединение работает, подробности выводятся в окно Консоли. Если есть ошибка, то ошибка выводится на консоль.

using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI;

public class Example : MonoBehaviour { int m_ServerSocket;

HostTopology m_HostTopology;

//Это Кнопки, запускающие клиент и сервер, и Button для отправки сообщений //Убедитесь, что вы назначили их в Инспекторе перед тестированием public Button m_ServerButton;

void Start() { //Настройте конфигурацию Connection, которая содержит информацию о канале ConnectionConfig config = new ConnectionConfig();

/Создать новую информацию о хосте на основе созданной конфигурации и максимально разрешенного количества подключений (20) m_HostTopology = new HostTopology(config, 20); // Инициализируем сетевой транспорт NetworkTransport.Init();

//Вызов функции ServerButton при нажатии на сервер Button m_ServerButton.onClick.AddListener(ServerButton); }

void Update() { //Это переменные, которые заменяются входящим сообщением int outHostId; int outConnectionId; int outChannelId; byte[] buffer = new byte[1024]; int receivedSize; byte error;

//Set up the Network Transport to receive the incoming message, and decide what type of event NetworkEventType eventType = NetworkTransport.Receive(out outHostId, out outConnectionId, out outChannelId, buffer, buffer.Length, out receivedSize, out error);

switch (eventType) { //Используйте этот случай, когда обнаружено соединение case NetworkEventType.ConnectEvent: { //Вызов функции для обработки полученной информации OnConnect(outHostId, outConnectionId, (NetworkError)error); break; }

case NetworkEventType.Nothing: break;

default: //Вывод ошибки Debug.LogError("Получено неизвестное сетевое сообщение: " + eventType); break; } }

//Эта функция вызывается при обнаружении соединения void OnConnect(int hostID, int connectionID, NetworkError error) { //Вывод данной информации в консоль Debug.Log("OnConnect(hostId = " + hostID + ", connectionId = " + connectionID + ", error = " + error.ToString() + ")"); }

void ServerButton() { byte error; //Открываем сокеты для отправки и получения сообщений по порту 54321 m_ServerSocket = NetworkTransport.AddHost(m_HostTopology, 54321); //Подключаем "сервер" NetworkTransport.Connect(m_ServerSocket, "127.0.0.1", 54321, 0, out error); //Проверяем, есть ли ошибка if ((NetworkError)error != NetworkError.Ok) { //Выводим это сообщение в консоль с параметром Network ErrorDebug.Log("Была эта ошибка: " + (NetworkError)error); } //Иначе если ошибок не будет, выводим это сообщение в консоль else Debug.Log("Подключён: " + (NetworkError)error); } }

Свойства

Ok Операция завершилась успешно.
WrongHost Указанный хост недоступен.
WrongConnection Указанный идентификатор соединения не существует.
WrongChannel Указанный канал не существует.
NoResources Недостаточно ресурсов для обработки этого запроса.
BadMessage Нет сообщений
Timeout Время соединения истекло.
MessageToLong Сообщение слишком длинное и не помещается в буфер.
WrongOperation Операция не поддерживается.
VersionMismatch Версии протоколов несовместимы. Проверьте версии вашей библиотеки.
CRCMismatch Networking.ConnectionConfig не соответствует другой конечной точке.
DNSFailure Адрес, указанный для подключения, недействителен или не может быть разрешен.
UsageError Эта ошибка возникает, если какая-либо функция вызывается с неверными значениями параметров.
Вы можете отблагодарить автора, за перевод документации на русский язык. Донат
API скрипты 2021.3