VRRSS vrenaissance

VRRSS // DEVELOPER DOCUMENTATION

API, Unity SDK и интеграция проверки лицензий

Интеграция системы проверки лицензии в Unity. #

В этом руководстве описано, как интегрировать систему проверки лицензий RRSS в вашу игру на Unity.

Установка пакетов #

Для интеграции системы проверки лицензии вам понадобятся следующие пакеты:

Название URL
VRenaissance SDK - Hub API https://git.vrrss.com/vrrss/unity/sdk/hubapi.git
VRenaissance SDK - Threading https://git.vrrss.com/vrrss/unity/sdk/threading.git

Для того, чтобы установить пакет, откройте диспетчер пакетов Unity, выбрав в меню Window → Package Manager.


В менеджере пакетов раскройте выпадающий список со знаком “+” и выберите “Install package from Git URL”.

В появившемся окне введите URL-адрес необходимого пакета из таблицы и нажмите кнопку «Install».



Реализация проверки лицензии #

В проекте создайте пустой C# скрипт. Назовите его как вам удобно.

Созданный скрипт заключить в условие компиляции: UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN. Это позволит избежать проблем при компиляции на других платформах, так как пакет API поддерживает только Windows платформу.
Автоматически созданному классу добавьте модификатор static.
Автоматически созданному классу замените модификатор доступа на internal.
Добавьте директивы using:

using VRRSS.SDK.HubAPI;
using VRRSS.SDK.Threading;

Определите приватный статический void метод OnLicenseVerificationCompleted, который принимает в качестве аргумента LicenseStatus.

private static void OnLicenseVerificationCompleted(LicenseStatus status)

Этот метод будет предназначен для обработки результатов проверки лицензии. Он принимает один аргумент — LicenseStatus, который будет представлять результат проверки. Для базовой реализации обработки достаточно всего лишь двух статусов: LicenseStatus.Success, который указывает на успешную проверку лицензии, и LicenseStatus.Canceled, который сигнализирует о том, что проверка была остановлена вручную. Все остальные статусы свидетельствуют о том, что лицензию не удалось подтвердить по какой-либо причине. Более подробную информацию о них вы можете найти на странице документации по LicenseStatus.
Рекомендуемая базовая обработка заключается в проверке статуса лицензии. Необходимо убедиться, что статус не равен Success или Canceled. Если это так, то следует отобразить сообщение об ошибке через VR Renaissance HUB, используя метод VRHub.ShowMessage, и завершить работу приложения.

private static void OnLicenseVerificationCompleted(LicenseStatus status)
{
    if (status != LicenseStatus.Success && status != LicenseStatus.Canceled)
    {
        VRHub.ShowMessage("The validity of the license could not be confirmed. " +
                "Please make sure that you have an active license for this product and that you have sufficient funds on your balance. " +
                "If you still encounter this error after meeting these conditions, please contact VR Renaissance support.",
            "Failed to verify license validity",
            MessageType.Error);
        Dispatcher.Invoke(Application.Quit);
    }
}

Этот метод будет вызываться не в основном потоке Unity. Поэтому, чтобы вызвать Application.Quit, необходимо использовать метод Dispatcher.Invoke.

Определите приватный статический void метод VerifyLicense без параметров.
Добавьте к методу RuntimeInitializeOnLoadMethod аттрибут.

[RuntimeInitializeOnLoadMethod]
private static void VerifyLicense()

Прежде чем начать проверку лицензии, нам необходимо подключить созданный ранее метод OnLicenseVerificationCompleted к событию, которое будет сигнализировать о завершении проверки. Для этого мы подписываем OnLicenseVerificationCompleted на событие VRHub.LicenseVerificationCompleted.

VRHub.LicenseVerificationCompleted += OnLicenseVerificationCompleted;

После этого следует запустить процесс проверки лицензии, используя метод VRHub.InitializeGameWithLicense. В этот метод необходимо передать идентификатор игры, который определен в разделе игр на панели разработчика VR Renaissance.

VRHub.InitializeGameWithLicense("com.stvdev.netoa");

Note

В этом фрагменте кода «com.stvdev.netoa» служит примером. Вам следует заменить его на идентификатор вашей игры.



На этом интеграция проверки лицензии завершена.

// Если платформа не является Windows, то скрипт не будет компилироваться.
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN

using UnityEngine;
using VRRSS.SDK.HubAPI;
using VRRSS.SDK.Threading;

internal static class LicenseCheck
{
    // Метод для обработки результатов проверки.
    private static void OnLicenseVerificationCompleted(LicenseStatus status)
    {
        // Если лицензия не подтверждена или её проверка не была остановлена.
        if (status != LicenseStatus.Success && status != LicenseStatus.Canceled)
        {
            // Выводим сообщение об ошибке через VRenaissance Hub.
            VRHub.ShowMessage("The validity of the license could not be confirmed. " +
                "Please make sure that you have an active license for this product and that you have sufficient funds on your balance. " +
                "If you still encounter this error after meeting these conditions, please contact VR Renaissance support.",
                "Failed to verify license validity",
                MessageType.Error);

            // Завершаем игру. Поскольку метод вызывается не в основном потоке, используем Dispatcher.
            Dispatcher.Invoke(Application.Quit);
        }
    }

    // Указываем, что метод необходимо выполнить при запуске игры.
    [RuntimeInitializeOnLoadMethod]
    // Метод для запуска проверки лицензии.
    private static void VerifyLicense()
    {
        // Подписываем метод обработки на событие.
        VRHub.LicenseVerificationCompleted += OnLicenseVerificationCompleted;

        // Запускаем проверку лицензии. Передаём идентификатор игры из панели разработчиков.
        VRHub.InitializeGameWithLicense("com.stvdev.netoa");
    }
}

#endif

Tip

Использование RuntimeInitializeOnLoadMethod является лишь базовой рекомендацией для определения точки запуска проверки лицензии. Вы можете самостоятельно вызвать этот метод, руководствуясь логикой вашей игры. Однако, важно отметить, что проверка лицензии должна осуществляться исключительно на игровом сервере, а не, например, на VR-шлемах.