
Содержание
Платформы
Plugin Your Games 2.0 — мультиплатформенный. Что это значит:
Вы можете легко публиковать игры на все самые известные площадки используя единый API от PluginYG. Например, метод для показа рекламы будет один и тот же для всех площадок. В том числе для Google Play.
Для мобильных приложений вы можете использовать различные рекламные сети. Мы приготовили для вас готовые модули некоторых медиаций. Если вам не подойдут готовые медиации, вы можете создать свой собственный модуль. Для этого необходимо создать папку новой платформы, создать конфиг платформы и скрипты для определения реализаций методов, таких как, например, метод вызова рекламы. Всё это подробно описано в документации.
Переключение между платформами (модулями площадок) производится в один клик и проект настраивается под выбранную платформу. После этого можно делать сборку игры. Плагин не заменяет стандартный процесс сборки и не корректирует какую-либо стандартную логику Unity.
При переключении платформы устанавливаются соответствующие настройки проекта. Всё гибко настраивается и можно даже создавать свои опции, которые будут вносить изменения в настройки проекта. Или опции могут просто меняться в зависимости от платформы, чтобы в коде получать разные значения для разных платформ.
Если вы можете интегрировать SDK какой-либо площадки в свою игру, то можете попробовать создать свой модуль платформы для PluginYG2.
Бесплатно предоставляется сам PluginYG2 и платформа YandexGames. Остальные готовые модули платформ вы сможете найти на Unity Assets Store или на Boosty.
Какие модули поддерживает та или иная платформа
PluginYG и его модули полностью локальные. Вы не будете зависеть от чьих то облачных сервисов. Это является преимуществом, так как даёт наибольшую надёжность и свободу. Но из-за этого не все системы могут иметь реализации на всех платформах. Например, платформа Яндекс Игры имеет авторизацию и лидерборды, в таком случае плагин использует API от SDK Яндекс Игр, и для этой платформы будут работать модули авторизации и лидербордов. Но, например, платформа Crazy Games не предоставляет API для лидербордов. В таком случае плагину неоткуда взять реализацию для данного модуля, и в игре он работать не будет. Ниже вы найдёте инструменты, которые помогут скрыть нерабочие элементы в игре.
Но не для всех модулей требуется обязательное использование API платформы. Например, если SDK платформы не предоставляет возможность получить информацию о языке, девайсе и о другом окружении пользователя, то PluginYG получит такую информацию сам, используя стандартные запросы. В WebGL плагин запросит данные окружения с помощью JS-кода. А на андройде будет работать реализация получения информации из стандартного кода Unity.
Ещё пример с сохранениями. Плагин имеет различные модули для сохранения игры, включая собственную систему. Все модули могут работать как в режиме локального сохранения, так и облачного, если это поддерживается платформой. Если же платформа не имеет облачных сохранений, то плагин будет сохранять данные в локальное хранилище браузера для WebGL-игры, и в PlayrPrefs для Android/IOS-игры.
В документации к каждой платформе вы сможете найти список модулей, которые явно поддерживаются платформой (имеют реализацию от API SDK платформы).
Настройки платформ
В настройках Plugin Your Games → Basic Settings есть поле Platform — это выбор платформы и ссылка на её настройки.
Настройки платформы удобнее всего открыть в отдельном окне — для этого нажмите правой кнопкой мыши по ссылке → Properties....

В данном gif примере 👆 вы видите настройки платформы.
Сверху есть название платформы (например YandexGames), которое можно получить из поля YG2.platform.
Под ним название дефайна платформы (например YandexGamesPlatform_yg) — используется для Scripting Define Symbols.
Настройки платформы необходимы, чтобы выбрать определённые настройки проекта для каждой платформы. Это как пресет настроек проекта. В этом окне дублируются некоторые параметры проекта, для которых может потребоваться установить разные значения для разных платформ. Например, для платформы Яндекс Игры мы показываем рекламу при старте игры, а для платформы CrazyGames не показываем.
Получается, параметры в данном окне переопределяют параметры в проекте. Но переопределяться они будут, только если поле опции в настройках платформы активно. За это отвечает флаг слева от поля. Когда поле деактивировано, оно становится серым и не интерактивным. Деактивированное поле не будет переопределять значения оригинального параметра и никак не повлияет на проект.
Если нажать на кнопку «Применить настройки проекта», то значения оригинальных полей будут переопределены значениями из настроек платформы. Вам не нужно нажимать эту кнопку перед сборкой каждый раз. Настройки проекта будут применяться автоматически перед сборкой билда и при переключении платформы в настройках PluginYG (Если стоит флаг Auto Apply Settings, по умолчанию включёно).
PlatformEventsYG2 компонент
Данный компонент может выборочно выполнять различные методы в зависимости от текущей платформы. Таким образом, можно скрыть некоторые элементы для определённого списка платформ:

В этом примере для Yandex Games видно все элементы, а для Crazy Games они скрываются, т.к. в CG эти модули не работают из-за отсутствия такого функционала у площадки.
Чтобы сделать также, выберите платформы для которых будут выполняться методы и привяжите какие угодно методы. В примере используется деактивация игрового объекта, такой метод привязывается по умолчанию.
Затем, если есть потребность, можно выровнять элементы интерфейса, чтобы они адаптировались под изменения. Например, с помощью компонента Grid Layout Group.
Работа с кодом
Нечто аналогичное как с компонентом Platform Events YG2 можно делать и в коде, используя вышеупомянутые поле YG2.platform и дефайны. Например:
using UnityEngine;
using YG;
public class MyClass : MonoBehaviour
{
public void MyMethod()
{
if (YG2.platform == "CrazyGames")
{
gameObject.SetActive(false);
}
#if CrazyGamesPlatform_yg // В билд попадёт только один из SetActive()
gameObject.SetActive(false);
#else
gameObject.SetActive(true);
#endif
}
}
Методы опциональные
Есть методы с разной реализацией для разных платформ, что позволяет использовать один метод, который будет вести себя по разному для разных платформ.
Метод FirstInterAdvShow — например, CrazyGames требует, чтобы самый первый показ рекламы при открытии первого уровня/локации проигнорировался. Метод FirstInterAdvShow проигнорирует первый показ рекламы для CrazyGames, а для YandexGames покажет рекламу в любом случае. После того, как реклама будет показана с помощью данного метода, информация об этом сохранится и реклама будет показана в любом случае, даже при после перезагрузки страницы. Чтобы сбросить эти сохранения, в Unity Editor необходимо отчистить Player Prefs. Для тестирования в вебе откройте игру в режиме инкогнито.
Метод OtherInterAdvShow покажет рекламу на YandexGames, для CrazyGames проигнорирует. В CrazyGames запрещается показывать рекламу при переходе в главное меню игры и в некоторых других местах. Для таких моментов можно использовать метод OtherInterAdvShow, чтобы использовать разные его реализации для разных платформ.
Метод LoadInterAdv будет подгружать рекламу для платформ, в которых это необходимо. Для YandexGames и CrazyGames такого нет, по этому метод у них пустой. Такой же метод есть для рекламы за вознаграждение LoadRewardedAdv.
Все опциональные методы содержатся в классе OptionalPlatform. Пример вызова такого метода:
YG2.optionalPlatform.FirstInterAdvShow();
Опциональные методы также можно выполнять без кода через компонент EventsYG2.