Встроенные покупки в Unity 5: Soomla & Android

Эта инструкция описывает создание встроенных покупок в игре для Android с использованием плагина Soomla для Unity 5. Процесс включает установку плагина, настройку скриптов и интеграцию с Google Play.

Подготовка и резервное копирование проекта

Перед началом работы рекомендуется создать резервную копию проекта. Установка плагинов может привести к непредвиденным последствиям, и резервная копия позволит восстановить рабочее состояние в случае проблем.

Установка плагина Soomla

Для реализации встроенных покупок используется платный плагин Soomla (на момент написания – 50 долларов США, возможны скидки). Найдите его в Asset Store Unity. Если вы не планируете его приобретать, пропустите этот раздел.

Установка может потребовать корректировки файла AndroidManifest.xml. В некоторых версиях плагина это может быть необходимо для добавления дополнительных разрешений.

Настройка Soomla Secret и ключей

После импорта плагина Soomla в проект Unity, установите Soomla Secret – произвольный пароль для защиты данных (например, «Test»). Укажите этот пароль в настройках сборки (Build Settings > Player Settings > Publishing Settings). Также необходимо указать ключ, полученный от Google Play. Ошибка в ключе не помешает компиляции, но может привести к неработоспособности встроенных покупок.

Создание скриптов для работы с Soomla

Для взаимодействия с плагином Soomla и Google Play создаются два скрипта:

  1. byGooglePlay.cs: Взаимодействие с Google Play. Содержит функции для получения информации о покупках, инициализации Soomla и работы с виртуальными товарами.
  2. byGame.cs: Логика игры и взаимодействие с byGooglePlay.cs. Обрабатывает нажатия на кнопки покупки и восстановления покупок, проверяет статус покупки и скрывает кнопки после совершения покупки. Код скриптов (при наличии) доступен дополнительно.

byGooglePlay.cs – функции

Скрипт содержит функции: GetGoods, GetCurrencies, GetCurrencyPacks, GetCategories. Функции GetCurrencies, GetCurrencyPacks и GetCategories предназначены для работы с внутриигровыми покупками, не связанными с Google Play. GetGoods используется для взаимодействия с Google Play, определяя доступные товары и их идентификаторы.

byGame.cs – обработка событий

В byGame.cs происходит проверка имени объекта (кнопки «Restore purchase» или «Ads»), инициализация Soomla, проверка статуса покупки, обработка нажатия кнопок («купить» и «восстановить покупки»), и скрытие кнопок после покупки. Функция CheckPurchaseStatus регулярно проверяет статус покупки и обновляет интерфейс. Обработка ошибок покупки производится с помощью блока try…catch.

Добавление скриптов к объектам игры и тестирование

Скрипты byGame.cs прикрепляются к игровым объектам, представляющим кнопки «Ads» и «Restore purchase». После запуска игры, при условии, что покупки не были совершены, кнопки должны быть видны. После совершения покупки, кнопки должны скрыться.

Регистрация в Google Play Developer Console

Для публикации игры с встроенными покупками необходима регистрация в Google Play Developer Console (на момент написания – 25 долларов США). Создайте новое приложение, укажите название, язык (например, английский), описание и другие данные. Укажите корректный Bundle Identifier в формате com.company.gamename.

Добавление контента для продажи в Google Play Developer Console

После компиляции игры и загрузки APK-файла в Google Play Developer Console, добавьте информацию о товарах. Используйте функцию «Добавить продукт». Например, добавьте покупку «No Ads», указав идентификатор продукта, название, цену и валюту. Идентификатор должен совпадать с идентификатором, используемым в скриптах игры. Укажите цены для разных регионов и валют.

Плагин Soomla упрощает добавление встроенных покупок в игру Unity. Учтите стоимость плагина и регистрацию в Google Play Developer Console. Тщательно проверяйте все настройки и идентификаторы.

Что будем искать? Например,программа