Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 5.87 KB

room.md

File metadata and controls

61 lines (44 loc) · 5.87 KB
description
Пример Room демонстрирует встроенную систему комнат от Mirror.

Room

{% hint style="success" %} Персонал отеля будет раздражен, если вы устроите вечеринку в вестибюле, они скажут вам снять комнату! {% endhint %}

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

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

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

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

  • Оффлайн сцена, как правило, там, где может быть показано лобби
  • Сцена Room, как правило, там, где игроки собираются и готовятся к началу игры
  • Сцена Game, где на самом деле происходит игра

{% hint style="info" %} Чтобы создать свою собственную игру с системой комнат, у нас есть шаблоны скриптов. {% endhint %}

  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 сцены и внедрить локально созданные части пользовательского интерфейса для каждого игрока.