Unity 6.3
0 онлайн 36 гостей 3 в системе
Вход

Предварительные требования к строительным блокам многопользовательских служб

Чтобы использовать строительные блоки 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 и ISession API.

Это разделение обеспечивает, что изменения UI могут быть сделаны независимо от логики основного сеанса, повышая обслуживаемость и масштабируемость.

UXML составление и привязка файлов

Пользовательские интерфейсы в строительных блоках создаются с помощью файлов Unity Extensible Markup Language (UXML), которые являются эквивалентом Unity HTML для UI Toolkit. Чтобы узнать о UXML скриптах, см. Введение в UXML.

Подробности этого UI являются следующими:

  • UXML состав:
    • Файлы UXML определяют структуру и иерархию UI. Эти файлы ссылаются на различные типы VisualElement и могут включать в себя пользовательские реализации VisualElement. Эти файлы определяют визуальные свойства, такие как стили, макет и содержание.
  • Создание 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