description |
---|
Пример Room демонстрирует встроенную систему комнат от Mirror. |
{% hint style="success" %} Персонал отеля будет раздражен, если вы устроите вечеринку в вестибюле, они скажут вам снять комнату! {% endhint %}
Система комнат в Mirror предназначен для того, чтобы стать "следующим шагом" после разделения лобби, обычно это делается для master (главного) сервера, который будет обладать функциями подбора игроков и запуска других игровых серверов.
{% hint style="warning" %} Обратите внимание, что система комнат Mirror не предназначена для того, чтобы допускать опоздавших участников / зрителей после начала игры. Если вам нужны эти функции, вам лучше вместо этого создавать свою игру на основе дополнительных сцен. {% endhint %}
Типичная настройка включает в себя 3 сцены:
- Оффлайн сцена, как правило, там, где может быть показано лобби
- Сцена Room, как правило, там, где игроки собираются и готовятся к началу игры
- Сцена Game, где на самом деле происходит игра
{% hint style="info" %} Чтобы создать свою собственную игру с системой комнат, у нас есть шаблоны скриптов. {% endhint %}
- Создайте 3 пустые сцены: Оффлайн, Room, Game. Вы можете использовать свою собственную игровую сцену для Game, если она у вас уже есть.
- В обеих сцена Offline и Room, удалите Directional Light и измените настройку Clear Flags в Main Camera на Solid Color (чтобы упростить просмотр UI по умолчанию).
- Из шаблонов скриптов создайте свои собственные скрипты Network Room Manager и Network Room Player.
- В оффлайн сцене создайте пустой игровой объект именуемый
RoomPlayer
и перетащите скрипт Network Room Player на только что созданный объект, затем создайте prefab из этого объекта и уберите его со сцены. - В оффлайн сцене создайте пустой объект именуемый
RoomManager
и добавьте на него скрипт Network Room Manager, а также добавьте на него компонент Network Manager HUD. - В инспекторе у компонента Network Room Manager, назначьте следующее:
- Оффлайн сцену в поле Offline Scene
- сцену Room в оба поля Online Scene и Room Scene
- Сцену Game в поле Gameplay scene
- prefab
RoomPlayer
в поле Room Player Prefab - Ваш текущий prefab игрока в поле Player Prefab
- Сравните свои настройки с настройками в инспекторе, показанными на изображениях ниже.
- Добавьте все 3 сцены в Build Settings, где оффлайн сцена будет первой и билдите проект.
- В открытой оффлайн сцене кликните Play и затем на кнопку Host в HUD
- Запустите насколько экземпляров игры в виде клиентов и кликните на кнопку Client в HUD в каждом из них.
- Когда все клиенты нажмут на свои кнопки Ready, сцена Game будет загружена для всех.
- В сцене Game клиент хост увидит кнопку Возврата в комнату, которая вернет всех обратно в сцену Room, чтобы начать другую игру с теми же игроками. Объекты игрока в комнате ничего не делают в игровой сцене, но не уничтожаются, так что при возвращении в комнату они будут целыми.
Просмотрите переопределения в скриптах Network Room Manager и Network Room Player, которые вы создали на основе шаблонов. В них много комментариев о том, для чего они будут использоваться.
Вы можете отключить UI по умолчанию в инспекторе Network Room Manager и Network Room Player, сняв флажок Show Room UI, а затем создать свой собственный UI для сцены комнаты.
- Предлагаю посмотреть на то базовый пример сделанный для того, чтобы увидеть, как создать canvas сцены и внедрить локально созданные части пользовательского интерфейса для каждого игрока.