
Содержание
Работа с платформами
Какие модули поддерживает та или иная платформа
PluginYG и его модули полностью локальные. Вы не будете зависеть от чьих то облачных сервисов. Это является преимуществом, так как даёт наибольшую надёжность и свободу. Но из-за этого не все системы могут иметь реализации на всех платформах. Например, платформа Яндекс Игры имеет авторизацию и лидерборды, в таком случае плагин использует API от SDK Яндекс Игр, и для этой платформы будут работать модули авторизации и лидербордов. Но например, платформа Game Distribution не предоставляет 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.