Искать на сайте Unity

OPEN SOURCE ДЛЯ СЕТЕВОГО МУЛЬТИПЛЕЕРА

19 ноября 2015 г. через Технологии | 2 мин. читать
Placeholder image Unity 2
Placeholder image Unity 2
Поделиться

Is this article helpful for you?

Thank you for your feedback!

Что именно стало доступно как open source?

Функции мультиплеера можно разделить на низкий и высокий уровни. Низкий уровень – транспортный, в основном находящийся в классе NetworkTransport. Этот уровень существует внутри движка Unity и написан на C++. Его задача - предоставлять тонкий уровень поверх доступа сокета. Мы оптимизировали его с точки зрения производительности. Над всем этим мы имеем верхнеуровневый API, написанный на C# и существующий в модульном расширении DLL. Это расширение DLL стало доступно с открытым исходным кодом. И вы можете изменять/расширять его и заменять то, что доступно в Unity. Оно выпущено под лицензией MIT/X11, что означает, что вы можете использовать его как хотите и нет никаких ограничений или необходимости отчислений.

Два уровня абстракции

Руководство дает хороший обзор того, что вы можете делать с высоким уровнем API. В расширении DLL есть много классов, и вы также можете рассмотреть это разделение на два слоя. Используя классы NetworkClient и NetworkServer, вы можете настроить соединение вручную или использовать NetworkManager или NetworkLobbyManager для более высокого уровня доступа. Вы можете добавлять эти менеджеры в объект игры для опции мгновенного соединения с другим встроенным HUD-компонентом. Вы также можете расширить их, чтобы запустить индивидуальный настройки. Это создано на основе клиент/сервер и служб сервера (за исключением нескольких). Классы – это хороший пример того, как вы можете перемещать уровни самостоятельно, создавать собственные высокие уровни API. Даже если вы не хотите что-то менять, я рекомендую изучить возможности работы с ними.

Несколько вещей, на которые надо обратить внимание

Также стали доступны три проектных файла Visual Studio: один для запуска, второй для редактора и третий для запуска редактора. Последняя предназначена для версии запуска, которая запускается в PlayMode в редакторе. Метод апдейта заключается в выходе из движка, поэтому необходимо иметь функцию NetworkIdentity.UNetUpdate(), или ничего не произойдет при запуске. Имеется возможность генерации кода, который запускается каждый раз, когда сборка скомпилирована в редакторе. Этот генератор называется UNetWeaver, и мы также рассматривает выложить его в открытый доступ. Он анализирует NetworkBehaviours и генерирует сериализацию кода, Command/ClientRPC, таблицы подстановки и т.д. Их названия (SyncVar, Command и т.д.) не должны меняться, чтобы не нарушать их функционирование.

Получите open source репозиторий на Bitbucket.

19 ноября 2015 г. через Технологии | 2 мин. читать

Is this article helpful for you?

Thank you for your feedback!

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.