Room
Пример Room демонстрирует встроенную систему комнат от Mirror.
Персонал отеля будет раздражен, если вы устроите вечеринку в вестибюле, они скажут вам снять комнату!
Система комнат в Mirror предназначен для того, чтобы стать "следующим шагом" после разделения лобби, обычно это делается для master (главного) сервера, который будет обладать функциями подбора игроков и запуска других игровых серверов.
Обратите внимание, что система комнат Mirror не предназначена для того, чтобы допускать опоздавших участников / зрителей после начала игры. Если вам нужны эти функции, вам лучше вместо этого создавать свою игру на основе дополнительных сцен.
Первоначальная настройка
Типичная настройка включает в себя 3 сцены:
Оффлайн сцена, как правило, там, где может быть показано лобби
Сцена Room, как правило, там, где игроки собираются и готовятся к началу игры
Сцена Game, где на самом деле происходит игра
Чтобы создать свою собственную игру с системой комнат, у нас есть шаблоны скриптов.
Создайте 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 сцены и внедрить локально созданные части пользовательского интерфейса для каждого игрока.
Last updated