Добавление плагина в проект Unity
В этой статье мы расскажем о том, как добавить плагин GamePush в ваш проект Unity.
Последняя версия плагина доступна по ссылке.
Плагин работает на версиях Unity 2020 и выше.
Добавление игры в панель управления
Перед тем как начать установку плагина GamePush в ваш проект на Unity:
- Добавьте игру в панели управления играми.
- Нажмите кнопку Добавить игру.
- Перейдя в новое окно дайте название игре и нажмите кнопку Добавить игру. После этого вы попадете в интерфейс проекта. Для добавления проекта в Unity вам понадобятся:ID проектаиПубличный ключ.

- Скопируйте ID проектаиПубличный ключчтобы позднее добавить их в ваш проект Unity.
Добавление плагина в Unity
- Перейдите по ссылке и скачайте последнюю версия плагина.

- Для того чтобы начать работу с плагином GamePush в Unity добавьте его стандартным способом как и другие пакеты и ассеты. В верхнем меню Unity - Assets -> Import package -> Custom Package. Выберите- unitypackageплагина, который был скачан ранее.
- В новом окне Unity предложит импортировать содержимое пакета. Нажмите - Import, дождитесь окончания процесса. Если все сделано правильно, то в окне- Projectвместе с другими файлами проекта появится папка- GamePush.
- После того, как плагин GamePush был добавлен, можно использовать модули плагина в проекте. 
Использование модулей GamePush
Работа с плагином производится через модули, каждый из которых отвечает за отдельный функционал. Все модули плагина используются из скриптов.
Для работы с модулями:
- Добавьте библиотеку GamePush через - using GamePush.
- Обратитесь к нужному модулю. Название всех модулей начинается с - GP.

- Для корректной работы с плагином нужно дождаться его инициализации, прежде чем вызывать его методы. Для этого есть модуль GP_Init.
using UnityEngine;
// Добавьте библиотеку GamePush
using GamePush;
public class TestScript : MonoBehaviour
{
    // Можно подписаться на событие GP_Init.OnReady
    private void OnEnable()
    {
        GP_Init.OnReady += OnPluginReady;
    }
    // Можно дождаться готовности через await GP_Init.Ready
    private async void Start()
    {
        await GP_Init.Ready;
        OnPluginReady();
    }
    // Можно проверить готовность через GP_Init.isReady
    private void CheckReady()
    {
        if(GP_Init.isReady)
        {
            OnPluginReady();
        }
    }
    private void OnPluginReady()
    {
        Debug.log("Plugin ready");
    }
}
Пример показа рекламы с вознаграждением (модуль GP_Ads)
using UnityEngine;
// Добавьте библиотеку GamePush
using GamePush;
public class AdsManager : MonoBehaviour
{
    // Подпишитесь на событие GP_Ads.OnRewardedReward;
    private void OnEnable()
    {
        GP_Ads.OnRewardedReward += OnRewarded;
    }
    private void OnDisable()
    {
        GP_Ads.OnRewardedReward -= OnRewarded;
    }
    // При вызове метода можно указать любое текстовое значение
    // Например: COINS или GEMS
    private void ShowRewarded(string idOrTag)
    {
        GP_Ads.ShowRewarded(idOrTag);
    }
    // При успешном просмотре Reward рекламы
    // можно даввать награду проверяя указанное значение:
    private void OnRewarded()
    {
        if (idOrTag == "COINS")
            Player.AddCoins(250);
        if (idOrTag == "GEMS")
            Player.AddGems(15);
    }
}
Настройка проекта Unity для сборки WebGL билда
Для сборки проекта под веб-платформы, необходимо переключить в настройках сборки (Build Settings) целевую платформу на WebGL (если у вас нет WebGL в списке платформ, установите соответствующий модуль для вашей версии Unity)
- В проекте Unity откройте: - Tools->- GamePush.
- Укажите - Project idи- Public Tokenвашего проекта, которые копировали из панели управления GamePush.
в панели управления GamePush:

в проекте Unity Project ID и Token:

- Если хотите показать рекламу сразу же при открытии игры то поставьте галку - Show Preloader Ad
- Если хотите вызвать событие GameReady автоматически, укажите задержку вызова в миллисекундах в поле - Game Ready Delay. Например, для задержки в 2 секунды (столько длится заставка Unity) укажите 2000.
- После заполнения полей - Project ID,- Tokenи дополнительных настроек, нажмите- Save.
- Теперь можно собирать билд, с любым WebGL темплейтом. 
Полезная информация
Для проверки правильно ли установлена реклама: В редакторе Unity подставлены заглушки с выводом в Console нужной информации. Выглядят они в таком виде:

Если появляются ошибки в редакторе Unity в виде:
EntryPointNotFoundException: ...
То в эти методы плагина не подставлены заглушки, и для проверки всего функционала плагина нужно создать Build игры и проверять на нужной площадке или на хостинге.
Если есть проблемы на мобильных устройствах: Используйте версию Unity 2022.3 или позднее. В версиях 2021 года и раньше нет официальной поддержки мобильных устройств в WebGL, а ранние версии 2022 года имеют проблемы снекоторыми мобильными браузерами.
Если проект не билдится или игра бесконечно грузится: Проверьте путь проекта и его папок на наличие кириллицы, символы русского языка могут помешать сборке билда. То же самое с названием архива и папок в нём - кириллица, пробелы и спецсимволы могут стать причиной бесконечной загрузки игры.
В проекте используется WEBGL Template:
https://github.com/greggman/better-unity-webgl-template
Плагин наследует иерархию и подход к наименованиям от sdk, можно обращаться к документации за дополнительной информацией о работе методов.
Ссылка на репозиторий: https://github.com/GamePushService/GamePush-Unity-plugin
Список методов: https://github.com/GamePushService/GamePush-Unity-plugin/tree/main/Demo/Assets/Plugins/GamePush/Runtime/Modules
Автор: @Dinar_Shagidullin
Оставайтесь на связи
С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.
Сообщество GamePush в Telegram: @gs_community.
Для ваших обращений e-mail: official@gamepush.com
Желаем вам успехов!