Room

Пример Room демонстрирует встроенную систему комнат от Mirror.

Персонал отеля будет раздражен, если вы устроите вечеринку в вестибюле, они скажут вам снять комнату!

Система комнат в Mirror предназначен для того, чтобы стать "следующим шагом" после разделения лобби, обычно это делается для master (главного) сервера, который будет обладать функциями подбора игроков и запуска других игровых серверов.

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

Первоначальная настройка

Типичная настройка включает в себя 3 сцены:

  • Оффлайн сцена, как правило, там, где может быть показано лобби

  • Сцена Room, как правило, там, где игроки собираются и готовятся к началу игры

  • Сцена Game, где на самом деле происходит игра

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

  1. Создайте 3 пустые сцены: Оффлайн, Room, Game. Вы можете использовать свою собственную игровую сцену для Game, если она у вас уже есть.

  2. В обеих сцена Offline и Room, удалите Directional Light и измените настройку Clear Flags в Main Camera на Solid Color (чтобы упростить просмотр UI по умолчанию).

  3. Из шаблонов скриптов создайте свои собственные скрипты Network Room Manager и Network Room Player.

  4. В оффлайн сцене создайте пустой игровой объект именуемый RoomPlayer и перетащите скрипт Network Room Player на только что созданный объект, затем создайте prefab из этого объекта и уберите его со сцены.

  5. В оффлайн сцене создайте пустой объект именуемый RoomManager и добавьте на него скрипт Network Room Manager, а также добавьте на него компонент Network Manager HUD.

  6. В инспекторе у компонента Network Room Manager, назначьте следующее:

    • Оффлайн сцену в поле Offline Scene

    • сцену Room в оба поля Online Scene и Room Scene

    • Сцену Game в поле Gameplay scene

    • prefab RoomPlayer в поле Room Player Prefab

    • Ваш текущий prefab игрока в поле Player Prefab

  7. Сравните свои настройки с настройками в инспекторе, показанными на изображениях ниже.

  8. Добавьте все 3 сцены в Build Settings, где оффлайн сцена будет первой и билдите проект.

  9. В открытой оффлайн сцене кликните Play и затем на кнопку Host в HUD

  10. Запустите насколько экземпляров игры в виде клиентов и кликните на кнопку Client в HUD в каждом из них.

  11. Когда все клиенты нажмут на свои кнопки Ready, сцена Game будет загружена для всех.

  12. В сцене Game клиент хост увидит кнопку Возврата в комнату, которая вернет всех обратно в сцену Room, чтобы начать другую игру с теми же игроками. Объекты игрока в комнате ничего не делают в игровой сцене, но не уничтожаются, так что при возвращении в комнату они будут целыми.

Следующие шаги

Просмотрите переопределения в скриптах Network Room Manager и Network Room Player, которые вы создали на основе шаблонов. В них много комментариев о том, для чего они будут использоваться.

Вы можете отключить UI по умолчанию в инспекторе Network Room Manager и Network Room Player, сняв флажок Show Room UI, а затем создать свой собственный UI для сцены комнаты.

  • Предлагаю посмотреть на то базовый пример сделанный для того, чтобы увидеть, как создать canvas сцены и внедрить локально созданные части пользовательского интерфейса для каждого игрока.

Last updated