Предварительные требования к строительным блокам многопользовательских служб
Чтобы использовать строительные блоки Unity для многопользовательской игры, настройте следующее в вашем проекте:
- Проект Unity (рекомендуется 6.0 LTS или более поздний).
- Доступ к панели Unity и организации Unity.
- Вход редактора с пользователем, который имеет доступ к организации и проекту.
- Сетевой доступ к конечным точкам Unity Услуги.
Как работают многопользовательские строительные блоки
Многопользовательские строительные блоки разработаны для гибкой и модульной интеграции управления сессиями в ваши проекты Unity. SessionSettings ScriptableObject выступает в качестве центрального узла конфигурации для основной функциональности этих строительных блоков.
SessionSettings ScriptableObject
В файлах SessionSettings и ScriptableObject хранятся параметры и настройки, относящиеся к вашим сессиям. Важно отметить, что файл SessionSettings содержит строку SessionType, которая является основным идентификатором, используемым для управления различными типами сессий в вашей игре.
Управление сессией через SessionType
Строка SessionType управляет управлением сеанса в Building Block. При создании, присоединении или просмотре сеансов каждый VisualElement использует SessionType, указанный в активном SessionSettings, для фильтрации и взаимодействия с соответствующим сеансом. Этот подход позволяет динамическую конфигурацию без изменения кода для каждого типа сеанса.
Реализация: C# скрипты, визуальные элементы и разделение данных
Реализация строительных блоков в основном осуществляется с помощью скриптов C#. Ключевым архитектурным принципом является четкое разделение между визуальным представлением (UI) и базовыми данными и логикой.
Детали этой архитектуры являются следующими:
- Скрипты
VisualElement(UI): Эти скрипты, расширяющиеVisualElementили его производные, отвечают за отображение компонентов UI, с которыми взаимодействуют игроки, обработку ввода пользователя и отображение информации, связанной с сессией. Эти скрипты всегда отображаютUXMLAttributeдля ссылкиSessionSettingsили строковое значениеSessionType, которое распространяется на скриптViewModel, чтобы он мог работать на ожидаемой сессии. - Скрипты
ViewModel: Эти скрипты управляют фактическими данными сессии, взаимодействуют с Unity Мультиплеерными Сервисами и управляют игровой логикой, связанной со состояниями сессии, путем подписки на события сессии, отслеживаемыеSessionObserverиISessionAPI.
Это разделение обеспечивает, что изменения UI могут быть сделаны независимо от логики основного сеанса, повышая обслуживаемость и масштабируемость.
UXML составление и привязка файлов
Пользовательские интерфейсы в строительных блоках создаются с помощью файлов Unity Extensible Markup Language (UXML), которые являются эквивалентом Unity HTML для UI Toolkit. Чтобы узнать о UXML скриптах, см. Введение в UXML.
Подробности этого UI являются следующими:
- UXML состав:
- Файлы UXML определяют структуру и иерархию UI. Эти файлы ссылаются на различные типы
VisualElementи могут включать в себя пользовательские реализацииVisualElement. Эти файлы определяют визуальные свойства, такие как стили, макет и содержание.
- Файлы UXML определяют структуру и иерархию UI. Эти файлы ссылаются на различные типы
- Создание
SessionType:- Для упрощения настройки
SessionSettingsиSessionTypeпо элементам " Строительного блока ", UXML файлы устанавливаются с UIToolkit’s DataSource связей для распространения конкретногоSessionSettingsи связанные с ними вопросыSessionTypeдля всех детейVisualElementиз корневого элемента UXML.
- Для упрощения настройки
Дополнительные сведения о привязках времени выполнения в UIToolkit см. в Начало работы с привязкой времени выполнения.
Используйте Multiplayer Play Mode с вашими строительными блоками
Вы можете использовать пакет Multiplayer Play Mode для тестирования локальных Multiplayer Building Blocks с несколькими симулированными игроками. С помощью этого пакета вы можете запустить несколько экземпляров вашей игры в Unity Editor, симулируя многопользовательскую среду без необходимости создания и развертывания на отдельных устройствах.
Дополнительные ресурсы- Unity Услуги: Мультиплеер SDK
- Unity Netcode for GameObjects
- Unity Netcode for Entities
- UI Toolkit