Unity3D UNET Урок 1 Подготавливаем проект

Первый урок(не считая вводный конечно) посвящен базовой настройке проекта. Все начинается с того, что нужно добавить стандартный ассет Characters, из которого возьмем в дальнейшем FpsController. Но ближе к телу сети…

Общая концепция UNET такая — есть сервер, а есть клиенты.


Сервером может быть как выделенная машина, так и обычный игрок. Во втором случае его называет хостом(host) — т.е. клиент+сервер.

Остальные игроки присоединяются к серверу и передают все данные через него. Это главное отличие от старой сети, где игроки обменивались данными напрямую.

Хост, в отличие от других игроков, передает данные сам себе, потому что он является сервером. Однако дальше, эти данные, как и данные других игроков, передаются остальным игрокам.


Следующее важное понятие — локальный объект. Это объект, который ассоциирован(связан) с текущим локальным клиентом. Игрок не может выполнять команды на объекте, который ему не принадлежит. Частый случай — проверка принадлежности объекта игрока(префаба на сцене) к текущего локальному клиенту. Если у нас двое клиентов в комнате и у каждого свой объект игрока, то нужно для каждого объекта какие-то компоненты влючить/выключить. Свойство isLocalPlayer говорит о том, ассоциирован ли данный объект с локальным клиентом.

Любой сетевой объект должен принадлежать либо серверу, либо какому либо игроку.

Однако, создать объект может только сервер. После того, как сервер создаст объект, все подключенные клиенты смогут его увидеть(если объект видимый:)). После этого сетевая подсистема сможет синхронизировать состояние объекта и управлять его жизненным циклом.

В компоненте NetworkIdentity есть еще одно поле — localPlayerAuthority. Оно говорит о том, что объект находится под властью локального клиента. Это нужно для других компонентов системы, например, NetworkTransform.

Но есть объекты, которые должны находится под властью сервера. Например мобы, бонусы, лут на карте.


Дальше — менеджер. Это стандартный компонент системы. Он умеет управлять сценами, умеет спавнить префаб игрока и ассоциировать его с локальным клиентом. В общем, много магии происходит под его капотом.

Остальное — видосик:)

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.