This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
VR Development
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

C++/C# Сэмпл Photon Integration

Photon - это сетевой движок и многопользовательская платформа, которые могут обрабатывать все запросы на своих собственных серверах. Таким образом, для создания многопользовательского сетевого решения вы реализуете логику приложения (геймплея) и функции в проекте UNIGINE, а сетевая часть выполняется с помощью Photon. Этот небольшой пример демонстрирует, как интегрировать движок Photon в ваш проект UNIGINE, чтобы превратить его в многопользовательское приложение.

Два продукта Photon интегрированы в сэмпл Photon Integration:

  • Photon Realtime организует взаимодействие нескольких игроков по сети. Его можно использовать для создания многопользовательских шутеров, гоночных игр и других приложений реального времени.
  • Photon Chat позволяет пользователям обмениваться письменными сообщениями как публично, так и конфиденциально.

Сэмпл содержит следующие элементы:

  • Упрощенное окно авторизации для ввода псевдонима пользователя, которое может быть использовано в качестве основы для более сложного окна авторизации с паролем и так далее
  • Окно лобби для создания комнаты и проверки списка созданных комнат, доступных для подключения
  • Мир, содержащий реальные объекты, которыми можно манипулировать, и окно чата для обмена сообщениями

Передача данных по сети#

Сэмпл Photon содержит Utils, которые демонстрируют, как передавать исходные типы данных через Photon.

Невозможно напрямую передавать данные UNIGINE по сети с использованием Photon - они должны быть сериализованы перед отправкой, а затем десериализованы при получении другой стороной. Photon способен сериализовать и десериализовать наборы данных, перечисленные здесь (нажмите на Common-cpp - data types and utilities). Эта же информация по типам данных доступна в виде PDF файла для вашего удобства.

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

Ознакомьтесь с этим сэмплом и создайте свои собственные приложения, интегрирующие другие сетевые решения, разработанные Photon.

Запуск сэмпла#

Чтобы использовать продукты Photon, зарегистрируйтесь на веб-сайте Photon (www.photonengine.com) и выполните следующие действия:

  1. Загрузите необходимые SDK.

    Перейдите в SDKs (вкладка в правом верхнем углу).

    Для запуска этого примера вам понадобятся SDK для двух продуктов Photon:

    • REALTIME - Windows/Linux для C++ или .NET для C#
    • CHAT - Windows/Linux для C++ или .NET для C#
  2. Добавьте двоичные файлы.

    В папке с сэмплами Photon, найдите папку под названием PhotonSDK. Скопируйте все двоичные файлы в эту папку в соответствии со структурой, приведенной в файле Readme.txt, который также находится в этой папке.

    Example for Windows C++ project, Chat SDK binaries

    Пример для проекта Windows C++, двоичные файлы Chat SDK

    Example for Windows C# project, Chat SDK binaries

    Пример для проекта Windows C#, двоичные файлы Chat SDK
  3. Создайте идентификаторы приложений.

    Перейдите к Dashboards (вкладка в правом верхнем углу).

    В разделе Dashboards нажмите CREATE A NEW APP.

    Вам нужно создать два приложения для Photon sample: одно с использованием Realtime Photon SDK, а другое - Chat Photon SDK.

    Создание приложения Photon в реальном времени

    Создание приложения для фотонного чата

    Теперь у вас есть два приложения, и вы можете использовать их идентификаторы в примере. Для каждого экземпляра используется один и тот же идентификатор (т.е. другим участникам не нужно создавать свои собственные приложения).

  4. Добавьте идентификаторы приложений в пример проекта.

    В папке проекта найдите data/application_params.json и вставьте идентификаторы в соответствующие строки.

    Shell-команды
    {
        "realtime_application_id": "______________",
        "realtime_application_version": "1.0",
        "chat_application_id": "_________________",
        "chat_application_version": "1.0"
    }

Готово! Теперь запустите приложение и попросите своего друга сделать то же самое.

Если вы проводите индивидуальное тестирование, запустите еще один или два экземпляра на своем компьютере и переключайтесь между окнами, чтобы получить представление.

Использование сэмпла#

После запуска сэмпла, вы увидите базовую форму авторизации. Введите свой ник и нажмите Join Lobby.

Следующим будет отображено окно Lobby. Если вы первый и в списке нет номеров, нажмите Create Room, и номер будет создан.

Все пользователи, использующие одинаковые идентификаторы Photon в data/application_params.json, увидят комнату, названную в честь псевдонима, если они присоединятся после создания этой комнаты.

Дважды щелкните по названию комнаты, чтобы присоединиться к этой комнате.

Как только мир откроется, вы сможете перемещать свой материальный шар, используя кнопки WASD, вращать его, используя QE, и стрелять в других игроков, нажимая левую кнопку мыши.

Вы можете вводить сообщения, чтобы отправлять их всем пользователям, или отправлять сообщения, начинающиеся с @username, чтобы обмениваться личными сообщениями с этим пользователем. (Конечно, для этого вы должны знать имя пользователя, у приложения нет какого-либо конкретного интерфейса, который позволил бы вам узнать это.)

Поскольку индикатор выполнения жизненного цикла пуст, на экране отображается кнопка "Оставить". Нажмите на нее, чтобы вернуться в лобби.

Последнее обновление: 19.12.2023
Build: ()