Pong

Простой пример по тому "Как создать многопользовательскую игру с Mirror" является Pong, которые выключен в пакет AssetStore от Mirror. Он отображает пример использования NetworkManager, NetworkManagerHUD, NetworkBehaviour, NetworkIdentity, NetworkTransform, NetworkStartPosition и NetworkingAttributes.

Установка количества игроков

Прежде всего, давайте взглянем на объект NetworkManager в main сцене. При добавлении компонента NetworkManager на объект, несколько настроек по умолчанию уже установлены (Don't destroy on Load, Run in Background, ...) Для игры в Pong максимальное количество игроков равно 2, поэтому настройка Network Info/Max connections будет тоже равняться 2. Поскольку других сцен нет (room, online or offline scene) в этом примере поля для Offline Scene и Online Scene останутся пустыми.

Создание игрока

Кроме того, каждому игроку нужна ракетка для игры. У каждого игрока, который присоединится к игре, будет свой собственный управляемый объект, который представляет его в игре. Этот самый объект называется PlayerObject. Для спавна Prefab'a PlayerObject должен быть создан и хранить в себе компонент NetworkIdentity с галочкой Local Player Authority. Local Player Authority позволяет игроку управлять свойствами игровых объектов и изменять их (к примеру передвижение). NetworkManager'у нужна ссылка на этот Prefab, который будет расположен в Spawn Info/Player Prefab. Чтобы синхронизировать движение игрока по сети, сборный Prefab также должен иметь NetworkTransform.

Начальная позиция игрока

Основная сцена содержит 2 игровых объекта, в которых есть только компонент NetworkStartPosition (объекты RacketSpawnLeft, RacketSpawnRight). Эти transform'ы будут автоматически зарегистрированы в NetworkManager как позиции для спавна.

Настройка сети

Очень удобным компонентом для установления/тестирования соединений является Network Manager HUD. Он предоставляет базовую функциональность для запуска игры в качестве клиента, сервера или хоста (клиент и сервер одновременно). Ему требуется компонент Network Manager.

Мяч для понга

Мяч является основным объектом внимания в Pong, так как это объект, необходимый для набора очков. Его компонент NetworkIdentity не имеет ни Server Only ни Local Player Authority галочек, поскольку он управляется физическим движком сервера и может подвергаться влиянию игроков. Как и в случае с PlayerObject позиция синхронизируется через NetworkTransform. При наличии нескольких сцен мяч может спанитьсяNetworkManager'ом, но для простоты этого примера он помещен непосредственно в основную сцену.

Last updated