В этом руководстве описывается реализация встроенных покупок в приложениях Unity для Android. Мы создадим две кнопки: ads (реклама) и Restore (восстановить покупки). Кнопка Restore позволит восстановить предыдущие покупки. Для реализации потребуются два скрипта.
Резервное копирование проекта
Перед добавлением плагинов рекомендуется создать резервную копию проекта. Плагины могут вызвать непредсказуемые последствия, и резервная копия позволит быстро восстановить работоспособность проекта в случае возникновения проблем.
SOOMLA: установка и стоимость
Для реализации встроенных покупок используется платный плагин SOOMLA (цена на момент написания: 50 долларов США, возможны скидки). Плагин можно найти в Unity Asset Store, выполнив поиск по запросу «SOOMLA Unity». Если вы не планируете приобретать плагин, данное руководство может быть неактуально.
После покупки импортируйте плагин в проект. Обратите внимание, что файл AndroidManifest.xml может потребовать модификации для интеграции с другими службами (например, Everplay). В стандартной версии плагина этот файл уже включен.
В настройках SOOMLA (Window -> SOOMLA -> Edit Settings) установите SOOMLA Secret – произвольный пароль, который не должен изменяться после установки. Также установите ключ Test Purchase. В настройках Build Settings (Ctrl+Shift+B) -> Player Settings -> Publishing Settings укажите путь к ключу. Возможные ошибки в SOOMLA, связанные с ключом, обычно не критичны и не влияют на компиляцию.
В новых версиях плагина перемещение файлов SOOMLA_PRS и SOOMLA может быть необязательным.
Создание скриптов
Для работы с Google Play и интеграции с игрой создаются два скрипта: byGooglePlay и byGame. Код скриптов доступен [ссылка на описание к видео – необходимо добавить].
byGooglePlay
Этот скрипт взаимодействует с Google Play и записывает информацию о совершенных покупках. Он содержит функции GetGoods, GetCurrencies и GetVirtualGoods для работы со встроенными покупками. GetGoods устанавливает связь с Google Play, используя идентификаторы товаров. В примере используется только одна покупка – No Ads.
SOOMLA предоставляет множество функций; в данном примере используется функция createLifetimeVG для создания одноразовой покупки.
byGame
Этот скрипт отвечает за взаимодействие со игрой. Он содержит переменные для проверки состояния покупок и соответствующие функции.
Функция CheckPurchaseStatus проверяет наличие покупки No Ads, скрывая кнопки ads и Restore после совершения покупки. Функция BuyPurchase инициализирует SOOMLA, проверяет, является ли действие восстановлением покупки, и производит покупку или пытается восстановить покупку. Обработка исключений при восстановлении покупки также реализована в этом скрипте.
Интеграция и тестирование
Добавьте скрипт byGame к объектам ads и Restore. После запуска игры кнопки будут скрыты, если покупка уже совершена. Нажатие на кнопку ads симулирует покупку. После покупки кнопки скрываются. Функция восстановления покупок (Restore) в Unity не поддерживается.
Google Play Developer Console
Для добавления встроенных покупок зарегистрируйтесь в Google Play Developer Console (цена на момент написания: 25 долларов США). Создайте новое приложение, укажите язык (например, английский) и название (например, «Colors»). В разделе «Службы и API» скопируйте лицензионный ключ приложения и установите его в SOOMLA. Отключите ключ Test Purchase.
Создание и загрузка билда
Для добавления контента для продажи скомпилируйте игру и загрузите её в Google Play Developer Console. В настройках Build Settings установите SOOMLA Secret и Bundle Identifier в формате com.[Название компании].[Название игры]. Создайте APK-файл.
После загрузки APK-файла в Google Play Console, в разделе «Контент для продажи» добавьте новый продукт. Укажите идентификатор продукта (из скрипта SOOMLA), название, описание и цену в различных валютах. Продукт активируется после запуска проекта.
Плагин SOOMLA упрощает добавление встроенных покупок в Unity-игры для Android. Несмотря на платную стоимость, он предоставляет удобные инструменты для реализации этой функциональности.