Приступая к работе

В этом документе описаны шаги по созданию многопользовательской игры с помощью Mirror. Описанные здесь инструкции являются упрощенной версией инструкций более сложного уровня для реальной игры; она не всегда работает в точности так, как сложная, но она предоставляет базовый рецепт процесса.

Видео туториалы

Посмотрите эти потрясающие видеоролики показывающие как начать работу с Mirror.

Шаблоны скриптов

  • Создавайте новые скрипты Network Behaviour и другие сценарии быстрее

Смотреть Шаблоны скриптов.

Network Manager Setup

  • Создайте новый Network Manager из меню Assets > Create > Mirror.

  • Добавьте новый GameObject на сцену и переименуйте его в “NetworkManager”.

  • Добавьте только что созданному объекту Network Manager компонент “NetworkManager”.

  • Также добавьте NetworkManagerHUD на данный объект. Он реализует пользовательский интерфейс для управления состоянием сетевой игры.

Смотреть Как пользоваться NetworkManager'ом.

Prefab игрока

  • Найдите prefab для объекта игрока или же создайте его

  • Добавьте NetworkIdentity компонент prefab'у игрока

  • Назначьте Player Prefab в поле "player prefab" NetworkManager’а

  • Удалите объект игрока на сцене если он там есть

Смотрите Player Objects для получения более подробной информации.

Движение игрока

  • Добавьте NetworkTransform компонент на prefab игрока

  • Проверьте чтобы SyncDirection у компонента стоял на селекторе ClientToServer.

  • Обновите скрипт передвижения, чтобы выполнялась проверка на isLocalPlayer

  • Добавьте метод OnStartLocalPlayer для того чтобы в нём взять контроль над главной камерой сцены.

Например, данный скрипт обрабатывает движение только для локального игрока:

using UnityEngine;
using Mirror;

public class Controls : NetworkBehaviour
{
    void Update()
    {
        // exit from update if this is not the local player
        if (!isLocalPlayer) return;

        // handle player input for movement
    }
}

Базовое состояние игрока

  • Наследуйте скрипты, содержащие важные данные именно от NetworkBehaviour вместо MonoBehaviours

  • Используйте SyncVar для синхронизации важных переменных

Смотреть Синхронизация состояний.

Удаленные действия

  • Наследуйте скрипты, которые выполняют важные действия именно от NetworkBehaviour вместо MonoBehaviours

  • Обновите важные функции игрока на [Command]

Смотреть Удаленные действия.

Неигровые GameObjects

Исправьте неигровые prefab'ы, такие как враги:

  • Добавьте NetworkIdentity компонент

  • Добавьте NetworkTransform компонент

  • Назначьте эти prefab'ы в массив "Spawnable Objects" в NetworkManager'е

  • Обновите скрипты с действиями и состояниями для работы в сети

Спавнеры

  • Унаследуйте сценарии спавна на NetworkBehaviours

  • Измените спавнеры на работу только со стороны сервера (используйте isServer проверку или OnStartServer() функцию)

  • Вызывайте NetworkServer.Spawn() для создания игровых объектов

Позиция спавна для игроков

  • Создайте новый GameObject и разместите в точку для стартовой позиции

  • Добавьте NetworkStartPosition компонент на данный объект

Last updated