Элементы сетевого взаимодействия в Unity
Встроенные в Юнити способы работы с сетями поддерживают всё, описанное на предыдущей странице. Создание серверов и подключение клиентов, обмен данными между подключенными клиентами, определение какой игрок управляет какими объектами, доступ через различные конфигурации сети — всё это поддерживается сразу после установки Юнити. На этой странице мы рассмотрим реализацию в Юнити этих сетевых задач.
Создание сервера
Перед тем как вы сможете начать играть в сетевую игру, вам необходимо определить другие компьютеры, с которым вы будете обмениваться данными. Чтобы это сделать, необходимо создать сервер. Это может быть как машина, на которой запущена игра, так и отдельная выделенная машина, не принимающая участия в игре. Чтобы создать сервер, просто вызовите Network.InitializeServer() в скрипте. Если вы хотите подсоединться к уже существующему серверу как клиент, вызывайте Network.Connect().
В общем, вам может быть очень полезно ознакомиться со всем классом Network class.
Связь с использованием компонентов Network View
Network View (просмотр сети) это компонент, который отправляет данные через сеть. Компонент Network View даёт вашим объектам GameObject возможность отправлять данные, используя удаленный вызов процедур RPC или синхронизацию состояний State Synchronization. Способ, которым вы используете Network View будет определять, как будут работать сетевые взаимодействия вашей игры. Network View имеют несколько вариантов, но все они необычайно важны для ваших сетевых игр.
Для большей информации об использовании Network View изучите Network View Guide page и Component Reference page.
Удаленные вызовы процедур (Remote Procedure CAlls, RPC)
Удаленные вызовы процедур (Remote Procedure Calls, RPC) это функции, объявленные в скриптах, прикрепленных к GameObject, который содержит NetworkView. Network View должен указывать на скрипт, содержащий RPC функцию. После этого, RPC функция может быть вызвана из любого скрипта в этом GAmeObject.
Для большей информации об использовании RPC в Юнити, изучите RPC Details page.
Синхронизация состояний (State Synchronization)
Синхронизация состояний это постоянный обмен данными между всеми клиентами игры. Таким способом позиция игрока может быть синхронизирована со всем клиентами, так что будет казаться, что он управляется локально, когда данные в действительности доставляются через сеть. Для синхронизации состояний внутри объекта GameObject вам просто надо добавить компонент NetworkView на этот объет и объяснить ему, за чем наблюдать. Наблюдаемые данные после этого синхронизируются со всеми клиентами в игре.
Для большей информации об использовании синхронизации состояний в Юнити, изучите State Synchronization page.
Network.Instantiate()
Network.Instantiate() позволяет вам создавать экземпляры префабов на всех клиентах естественно и просто. По сути, это вызов функции Instantiate() , но он выполняет создание экземпляров на всех клиентах.
Внутренне Network.Instantiate это простой вызов RPC, который выполняется на всех клиентах (также локально). Он распределяет NetworkViewID и назначает его созданной копии префаба, что гарантирует его правильную синхронизацию среди всех клиентов.
Для большей информации изучите страницу Network Instantiate.
NetworkLevelLoad()
Работа с обменом данными, состоянием клиентов игроков и загрузкой уровней может быть слишком большой. На странице Network Level Load вы найдёте полезный пример для решения этой задачи.
Master Server
Master Server (Управляющий сервер) помогает вам подбирать игры. При запуске сервера, вы подключаетесь к master server, и он предоставляет вам список всех активных серверов.
Master Server это место встречи для серверов и клиентов, где афишируются серверы и совместимые клиенты подключаются к запущенным играм. Это снимает необходимость заботиться об IP адресах для всех сторон. Это даже может помочь пользователям хостить игры без необходимости возиться с их маршрутизаторами, что требовалось бы при обычных обстоятельствах. Это может помочь клиентам пройти через брандмауэр сервера и добраться до частных IP адресов, обычно недоступных из публичного интернета. Это делается с помощью facilitator, который способствует установлению соединения.
Для большей информации изучите Master Server page.
Минимизация сетевого трафика
Важно использовать минимальный объём сетевого трафика, достаточный для корректной работы игры. В вашем распоряжении различные способы передачи данных, различные методы, определяющие что или когда пересылать и прочие ухищрения.
Для получения советов по уменьшению сетевого трафика, изучите Minimizing Bandwith page.
Отладка сетевых игр
Юнити поставляется с несколькими вспомогательными инструментами, которые помогут вам отладить вашу сетевую игру.
- Network Manager (Менеджер сетей) может быть использован для документирования всего входящего и исходящего сетевого трафика.
- Используя окна инспектора и иерархии вы можете отслеживать создание объектов, проверять сетевые идентификаторы и т.д.
- Вы можете запустить Юнити дважды на одной машине и открыть разные проекты в каждой программе. Для Windows это может быть сделано простым запуском другого экземпляра Юнити и открытием проекта из мастера проектов. Для Mac OS X, несколько экземпляров Юнити могут быть открыты из терминала и аргумент -projectPath может быть определен как: /Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath “/Users/MyUser/MyProjectFolder/” /Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath “/Users/MyUser/MyOtherProjectFolder/”
Убедитесь, что проигрыватель работает в фоновом режиме во время отладки сети потому что, если, например, два экземпляра запущены одновременно, один из них не будет активным. Это разорвет цикл сетевого взаимодействия и может вызвать непредсказуемые последствия. Вы можете включить этот параметр в Edit->Project Settings->Player в редакторе или при помощи Application.runInBackground
Создание сетевых игр на Unity3d. Обзор UNet. Практикум
На этом вебинаре по созданию игр Вы ознакомитесь с сетевой игрой со стороны разработчика, со структурой сетевой игры, а также создание небольшой сетевой игры и ее работа.
Покупай подписку с доступом ко всем курсам и сервисам
Библиотека современных IT знаний в удобном формате
Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.
- Все видеокурсы на 3 месяца
- Тестирование по 10 курсам
- Проверка 5 домашних заданий
- Консультация с тренером 30 мин

Halloween
- Все видеокурсы на 1 год
- Тестирование по 24 курсам
- Проверка 20 домашних заданий
- Консультация с тренером 120 мин
- Скачивание видео уроков
- Возможность приостановки обучения
- Все видеокурсы на 6 месяцев
- Тестирование по 16 курсам
- Проверка 10 домашних заданий
- Консультация с тренером 60 мин
Как сделать сетевую игру в unity
![]()
14 ноя. 2014 в 12:59
Как играть по сети (игра с друзьями) ! Очень прошу помочь!
Не могу понять, как поиграть совместно. При выборе пункта «Игра с друзьями» далее — «пригласить игроков», выдёт Подождите пожалуйста и так до бесконечносты. На крайний случай выдаёт ошибку 0х60000001. Мол попробуйте позже. Сижу с роутера, скорость хорошая интернет тоже. У друга тот же провайдер. Друзья, помогите мне пожалуйста ! Не нашёл ни чего в интернете, как будто такой проблемы в обще ни у кого нет(((
Сообщения 1 – 12 из 12
![]()
14 ноя. 2014 в 13:30
Есть такая проблема. точнее была,после сегодняшней обновы эту ошибку уже не выдает,юплей даже начал показвать что я в сети и стали доступны некоторые сервисы,однако подключиться к коопу неудается,получилось только 1 раз,а потом как отрезало(.В тех поддержке юбиков советуют почистить файл hosts и добавить экзешник игры и юплея в исключения брэндмауэра..я это все сделал-мне не помогло.
![]()
14 ноя. 2014 в 18:03
На данный момент проблема решена. В интернете я ни чего путного не нашёл. С другом решили отключить провода от роутеров и вставить непосредственно на прямую в комп. Далее связались с нашим провайдером и за отдельную плату в 50 рублей (подключение) и 100 рублей ежемесячого платежа выдать внешний АйПи адрес. Почле настройки провайдером данной функии и перезапуска игры успешно сиграли 3 часа совместной игры, вылетов не наблюдалось, разве что не получилось поиграть в четвером (я и мой друг, остальные двое левые ребята из автоматического подбора игроков если в мисси написано — 4 игрока максимум) была ооочень долгая загрузка, после чего появилась маленькая строка загрузки в низу по центру экрана, миссия загрузилась и тут же ресинхрон, с надписью, что кто-то покинул игру.Ну мы особо и не страрались. Пока всё.
![]()
17 мар. 2017 в 20:50
Здравствуйте, у меня тоже такая же проблема с кооп, не могу играть с другом который у меня в друзьях, все перепробовал не помогает, левые люди (не в друзьях) добавляются в кооп, а мой друг не может даже принять запрос о приглашении
7 Days to Die

Дата выхода: 13 дек. 2013
Жанр: Экшены, Приключенческие, Ролевые, Симуляторы
Разработчик: The Fun Pimps
Издатель: The Fun Pimps Entertainment LLC
Платформа: PC
Тип издания: Лицензия
Язык интерфейса: Русский, Английский, MULTI
Язык озвучки: Английский
Таблетка: Вшита (от ALI213, Goldberg)
Системные требования:
ОС: Windows 7 / 8 / 10 (64-bit)
Процессор: 2.8 Ghz Quad Core CPU
Оперативная память: 8 GB ОЗУ
Видеокарта: 2 GB
Место на диске: 15 GB
✅ Изменения: Обновлено до версии 21 (b317). [Изменения]
Описание игры:
Как и во многих других играх в стиле survival, в 7 Days to Die есть зомби, однако они настоящие интеллектуалы. Если надо, эти полумертвецы готовы вскарабкаться на стену, сделать подземный проход, снести здание. Так что о легкой жизни геймеру мечтать не приходится. А чего еще можно было ожидать? Ведь случилась ядерная война, породившая массу проблем, в том числе уже упомянутых высокоразвитых монстров. Кстати, как и положено представителю жанра, днем эти создания пассивны, зато ночью по-настоящему безумны. Чтобы подготовиться, нужно строить, создавать полезные предметы, искать и добывать ресурсы, заниматься развитием персонажа.
В итоге была создана этакая многожанровая «песочница». Сами разработчики говорят, что в ней есть общее и с Minecraft, и с фильмом «Гравитация». А может, они симулятор Gravity Defied имеют в виду? В любом случае повлияли разные проекты, в которых, с одной стороны, нужно выживать, с другой, создавать собственные пространства. В общем-то, это и есть два доступных в 7 Days to Die режима. Добавим, что графика вокселная, и она поразительно детальная. Игроку постоянно придется приспосабливаться к новым условиям, потому что применена процедурная генерация мира. Жаркая Аризона, если точнее, фантастический округ Навезган (Navezgane), где происходят события, постоянно меняет облик.
За что люди хотят скачать торрент 7 Days to Die?
— Версия игры на данный момент Alpha 14.6.
— На основе движка Unity 3D был создан удивительно красивый вокселный мир. Красивый и страшный.
— Это настоящий симулятор строительства — если нет фундамента, дом долго не простоит.
— Зомби здесь умнейшие! Они ловко находят уязвимые места конструкций и быстро ломают их, а если не находят, все равно сделают все возможное для разрушения укрытия своей жертвы.
— Есть два режима: выживание и редактирование. Они позволяют проявить разные геймерские таланты.
— Выживать и создавать карты можно не только поодиночке, но и в компании — в доступе мультиплеер.
— Есть все, что должно быть в хорошей песочнице: нужно крафтить, развиваться, строить, постоянно что-то искать.
— Мир бесконечно разнообразен благодаря системе процедурной генерации. Важно, что окружающие объекты рушатся зрелищно!
— Случившееся окутано тайной. Раскрыть ее помогут редкие записи, сделанные выжившими. Благодаря сюжету герой чувствует себя центром событий!
— Ночь сменяет день, и наоборот. В разное время суток зомби предпочитают определенную линию поведения, однако выживать в 7 Days to Die сложно всегда.
— По многочисленным просьбам теперь и у нас на itorrents-igruha.org каждый может скачать 7 Days to Die через торрент прямо сейчас.