icon
Скачать с Unity Asset Store.
Подробнее о PluginYG2 - преимущества и другая информация.
Телеграм канал - новости об обновлениях, полезная и важная информация.
Телеграм чат - задать вопрос или найти уже готовые ответы.

Ниже предоставлены видеоматериалы. Рекомендуется всё же ориентироваться на документацию, т.к. она содержит более подробную и всегда актуальную информацию. YouTube плеер может не отображаться из-за блокировок.

Начало работы

• Поддерживаются версии Unity: 2021.3.18+, 2022.3+, 2023.2+ включая Unity 6.
• Не перемещайте файлы плагина в проекте!
• Перед импортом плагина убедитесь, что в проекте отсутствуют ошибки компиляции!
Скачайте PluginYG2 с Unity Asset Store и импортируйте. Вас встретит приветственное окно. В нём дублируются кнопки из контекстного меню:
icon
Откройте настройки плагина — это фундаментальное окно. Обратите внимание, многие поля имеют всплывающие подсказки!
icon
Рекомендуется ознакомиться со всеми параметрами из раздела Basic Settings.

Если при импорте плагина вы отказались от установки оптимальных настроек для стандартной платформы Яндекс Игры
В Basic Settings → Platform, необходимо выбрать платформу. Для портирования на WebGL, требуется выбрать соответствующий шаблон в Player Settings → Resolution and Presentation → WebGL Template. Вместо выбора шаблона, вы можете нажать галку Auto Apply Settings под полем Platform. В таком случае, шаблон применится автоматически, но вместе с ним применятся и другие настройки, которые предлагает плагин. Вы можете отключить автоматический выбор настроек проекта, это изменяется в свойствах платформы (поле Platform).
Локальный хост и размещение на своём сервере
Тестирование игры на локальном хосте с помощью Build And Run — работает. При этом инициализация SDK (получение данных платформы) будет игнорироваться.

При размещении игры на своём сервере для Яндекс Игр, включите опцию Own Host, которая находится в настройках платформы (поле Platform в разделе Basic Settings). Это добавит соответствующую строку подключения в index.html.
Обратите внимание, ваш хост может не поддерживать некоторые настройки проекта. Например, компрессию Brotli. Если при импорте плагина вы соглашались на установку оптимальных настроек, то PluginYG2 сам меняет некоторые параметры проекта. Для контроля над этим процессом, перейдите в настройки платформы и внесите изменения в соответствии с вашими предпочтениями.

Для локального тестирования игры с подключением к SDK, в Index.html измените функцию IsLocalHost под свои нужды. Данный файл можно корректировать в папке WebGLTemplates/YandexGames.

Модульная система

Все функции плагина разделены на отдельные модули. Подробнее о преимуществах такого подхода и в целом о плагине вы можете почитать на домашней странице сайта.
Откройте инструмент контроля версий. Давайте скачаем и импортируем для примера модуль InterstitialAdv:
icon

Когда модуль импортирован:

  1. Он попадает в папку Modules. Любая папка в директории Modules будет определена как модуль плагина.
  2. Если модуль имеет глобальные настройки, то они отобразятся в настройках плагина.
  3. Для всех модулей будет создан свой дефайн (директива препроцессора). Вы можете использовать его в своём коде.

icon
У дефайнов модулей в конце есть подпись _yg. Модули-платформы обозначаются надписью Platform_yg. При возникновении проблем, вы можете проверить все ли дефайны правильно установлены и скорректировать их. Ещё можно попробовать обновить данные о модулях в проекте — удалив файл PluginYourGames/Editor/ModulesListYG2.txt

Обнаружив явные проблемы с плагином, пожалуйста, сообщите об этом в чате Plugin Your Games. Там вы сможете найти обсуждения уже с готовыми решениями, общаться по тематике разработки игр. А следить за обновлениями плагина и другой важной информацией предлагается в телеграм канале PluginYG2 на связи.

Импорт всех модулей

Для импорта нескольких модулей за раз, используйте кнопку Quick Import и выберите модули для импорта как показано на гифке ниже:
icon
У некоторых модулей есть зависимости (другие модули). При импорте нескольких модулей одновременно надо это учитывать.
При критических ошибках в проекте, когда невозможно открыть окно контроля версий, можете вручную скачать и воспользоваться пакетом, который содержит все модули.
Удалять модули можно прямым удалением папок модулей, которые находятся по пути: PluginYourGames/Modules.
Выделение модулей галочками для дальнейшего импорта или удаления нескольких модулей одновременно не предусмотрено, так как используется стандартная система UnityPackage, которая имеет свои ограничения.

Работа с кодом

PluginYG находится в пространстве имён YG, импортируйте его в начале вашего скрипта: using YG;
Практически все функции находятся в классе YG2. Так, например, мы можем найти в данном классе метод вызова рекламы: YG2.InterstitialAdvShow();
Как работать с рекламой и другими модулями смотрите в соответствующих разделах.

Другие объекты, которые содержатся в PluginYG2 без отдельных модулей:

Основные
platform — пример значения, которое может содержать поле platform: YandexGames, CrazyGames.
onGetSDKData — событие, сигнализирующее о том, что SDK платформы инициализирован (может пригодиться при использовании опции Sync Init).
isSDKEnabled — поле равно true — когда SDK инициализирован.
isFirstGameSession — поле, информирующее о том, первая ли сейчас игровая сессия. Если первая — будет равно true всю текущую игровую сессию. Но обратите внимание! Данное поле не сохраняется в облачное хранилище.
Пауза игры
onPauseGame — событие паузы игры. Возвращает bool. Подробнее в разделе Interstitial Adv.
PauseGame — метод для остановки игры. Принимает параметр bool: true — установить паузу, false — продолжить игру.
Метод PauseGame имеет и другие параметры, чтобы при включении паузы можно было выбрать: контролировать ли звук, время, курсор мыши, Event System.
PauseGameNoEditEventSystem — метод паузы без остановки Event System. Его удобно выполнять через EventsYG2 (о нём ниже). Контроль над Event System можно полностью отключить с помощью опции Edit Event System (настройки плагина → Basic Settings → Pause Game).
isPauseGame — поле равняется true когда игра остановлена.
Фокус игры
onShowWindowGame — событие срабатывает, когда игра становится в фокусе.
onHideWindowGame — выход из фокуса.
onFocusWindowGame — возвращает bool значение.
isFocusWindowGame — с помощью этого поля можно узнать в фокусе ли сейчас игра.
Разметка геймплея
GameReadyAPI — выполняйте метод, когда игра загрузилась и пользователь может приступить к геймплею. Необходимо использовать, если в Basic Settings отключена галка Auto GRA. Подробнее о Game Ready. По умолчанию метод GameReadyAPI выполняется автоматически после загрузки игры, потому что опция AutoGRA в настройках плагина включена. Если в вашей игре после её загрузки есть ещё дополнительные задержки — выключите AutoGRA и вызывайте метод вручную.

GameplayStart — используйте метод, чтобы дать сигнал платформе о начале геймплея.
GameplayStop — используйте метод, чтобы дать сигнал платформе об остановке геймплея.
При открытии и закрытии рекламы или других паузах — выполняются методы GameplayStart и GameplayStop. Но только если раньше в игре был вызван метод GameplayStart.
То есть, если в коде использовать методы разметки, то они будут автоматически выполняться при просмотре рекламы и других схожих паузах. А после паузы будет установлено состояние геймплея такое, какое было до паузы.
Методы разметки геймплея необязательны, но их внедрение приветствуется.

isGameplaying — поле, информирующее о активности геймплея.
YG2.optionalPlatform.HappyTime — счастливое время.

Демо материалы

icon
Все демонстрационные материалы находятся в папках Example. Откройте главную демо-сцену: PluginYourGames/Example/Scenes/ExampleYG2. Главная сцена отображает демо-объекты всех модулей. Если у модуля есть сцена с демо-объектом, то он отобразится. Но сначала нужно нажать на кнопку "Добавить демо сцены". Тогда сцены модулей добавятся в Build Settins. Перед релизом игры или по завершению изучения плагина можно удалить демо сцены из Build Settings нажав на кнопку "Удалить" или выполнить удаление всех демо материалов из проекта.

При удалении какого-либо модуля — сцена модуля останется в Build Settings и будет неопределённой. Перед удалением модуля желательно в разделе демо сцен нажать на кнопку "Удалить".

EventsYG2 компонент

icon

  • Компонент EventsYG2 хранит в себе большинство доступных методов плагина. С его помощью без кода можно, например, назначить на кнопку метод вызова рекламы.
  • С помощью компонента EventsYG2 можно выполнять методы по событию. Для этого нажмите на кнопку «Добавить новый тип события» и выбирайте событие, при котором необходимо выполнить какой-либо метод. Это работает также, как вы привязываете методы на клик по кнопке в компоненте Button.

Сборка билда

Теперь вы знаете основу работы с Plugin Your Games 2.0. С этими знаниями уже можно собирать рабочий билд. Но есть ещё пару интересных моментов. Далее о номере билда и немного о правильной настройке проекта под WebGL.

Номер билда

PluginYG2 хранит информацию о билде в файле PluginYourGames/Editor/BuildLogYG2.txt. Туда записывается номер билда. Например, если вы собираете проект при импортированном PluginYG третий раз, то номер билда будет = 3.

Номер билда отображается в следующих местах:

  • В логе Unity Editor после сборки проекта
  • В названии zip архива билда (приписка, например «b3»)
  • В консоли браузера (в первых логах)
  • В углу экрана игры при тестировании билда (подробннее далее)

Для обнуления информации о билде можно удалять файл BuildLogYG2.txt.
Разрешается удалять и всю папку PluginYourGames/Editor для отчищения кеша плагина.

После сборки проекта, если включена галка Arhiving Build в настройках плагина в разделе Basic Settings, то билд игры будет автоматически заархивирован в формате zip, чтобы каждый раз не архивировать вручную. PluginYG не удаляет оригинальный билд и не помещает внутрь него архив, т.к. плагин не нарушает какую-либо базовую логику Unity при сборке билда. По этому, расположение созданного архива может показаться странным. Для удобства — внутри папки, в которую собираетесь построить билд — создайте ещё одну папку с таким же названием игры. И уже внутрь неё собирайте билд игры:
icon

Настройки проекта

В настройках плагина, в разделе Template опция Developer Build поможет вам при тестировании билда игры. При использовании данной опции, в сборку попадут скрипты отображающие номер билда в углу экрана игры. Это даёт возможность мгновенно убедиться, что на сервере платформы актуальный билд.
Также, отображение такой плашки сигнализирует о том, что данный билд является не финальным, что поможет вспомнить о изменении настроек проекта под финальный билд.
icon
На плашку с номером билда можно нажать, чтобы она исчезла.
Перед финальным билдом необходимо выключить опцию Developer Build. Также в Build Settings для WebGL есть опция Code Optimization:
icon
Для экономии времени при сборке тестового билда установите параметр Shorter Build Time. Для релизного билда Runtime Speed with LTO. Подробнее смотрите в официальной документации.

Другие основные настройки проекта под WebGL плагин устанавливает автоматически, если вы это ему позволили, подробнее выше.
По умолчанию не применяется опция Color Space. Для WebGL рекомендуется использовать значение Gamma. Игры для IOS и некоторые другие устройства поддерживают только Gamma режим. Это же касается и для опции Auto Graphic API (рекомендуется включить).

Из основных рекомендаций ещё можно отметить опцию DSP Buffer Size для звуков — настройка оптимизации звука, которая ещё может помочь убрать проблему с посторонними шумами, если такая имеется. А в настройках самих звуков для WebGL параметр Load Type необходимо выставлять на Decompress On Load. Иначе на мобильных устройствах в шторке будет отображаться Media Player, будто звуки вашей игры — это прослушивание музыки.

Ещё проблема у новичков — не отображается шрифт в билде на WebGL. Нельзя использовать стандартный Unity шрифт, замените его. При возникновении трудностей читайте раздел «Часто задаваемые вопросы» (ещё не готов).

Советую отличную статью о настройке и оптимизации проекта.