Ответ 1
Вы можете использовать Unity HLAPI
без оплаты. Просто не используйте API соответствия Unity, тогда вам не нужно ничего оплачивать.
Вы можете заставить другого игрока напрямую подключиться к другому игроку, который находится не в той же локальной сети, но вам нужно выполнить переадресацию портов на каждом компьютере. Игроки могут выполнять переадресацию портов через настройки своего маршрутизатора, но вы не хотите, чтобы ваш проигрыватель прошел через это. Вы можете выполнять переадресацию портов с С# script, но это сложно, если вы ничего не знаете о сети. Существует много библиотек С#, которые могут сделать это, чтобы вы снова изобрели колесо.
После того, как вы выполните операцию перенаправления портов, вы можете затем использовать стандартный Unity standard API для прямого подключения к другому игроку в другой сети.
Если вы хотите сделать это дальше, вы можете иметь script, который отправляет IP-адрес и номер порта игроков на ваш сервер, чтобы игроки могли автоматически подключаться друг к другу без необходимости вручную вводить IP-адрес Адрес и номер порта каждого компьютера.
ИЗМЕНИТЬ:
API-интерфейс создания соответствия Unity= все классы внутри UnityEngine.Networking.Match
, такие как NetworkMatch
Стандарт API Unity= NetworkServer
и NetworkClient
Вы не должны использовать NetworkManager
, потому что большая часть его функции зависит от соответствия Unity, создающего API.
Чтобы создать сетевую игру, свободную от API-совместимости соответствия Unity, вам просто нужен класс NetworkServer
и NetworkClient
.
Чтобы создать сервер:
NetworkServer.Listen
Он имеет перегруженные методы, такие как
public static bool Listen(string ipAddress, int serverPort);
public static bool Listen(int serverPort);
Создание клиента (подключение к серверу):
NetworkClient.Connect
public void Connect(string serverIp, int serverPort);
Вы потеряете такие функции, как создание и объединение игр, если вы не хотите использовать API-интерфейс соответствия Unity. Вы можете использовать NetworkServer
и NetworkClient
, упомянутые выше, для создания полной сетевой игры. Просто создайте сервер, подключитесь к нему и начните отправлять и получать информацию. Это стоит того, потому что, когда сервер Unity опускается или начинает замедляться, ваша игра все равно будет работать в отличие от других.
ПРИМЕЧАНИЕ: Unity работает над приложением, которое позволяет вам размещать собственную игру. Это НЕ еще, но когда они выпустят его, вы сможете разместить свою собственную игру без Unity Server, запустив это приложение на своем сервере. Прямо сейчас, они хотят, чтобы вы заплатили за использование некоторых своих сетевых кодов, но настоящие кодеры не должны этого делать.