Содержание
Payments
Для платформы Яндекс Игры прочитайте раздел их документации Внутриигровые покупки. Там необходимо отправить запрос о подключении и активировать тестовые покупки.
При использовании внутриигровых покупок на платформе Яндекс Игры необходимо сохранять прогресс в облако. Поэтому требуется использование модуля Storage или PlayerStats.
После добавления товаров в каталог, можно приступать к настройке инапов в Unity.
Симуляция отображения покупок в Unity Editor
Чтобы плагин симулировал получение каталога товаров в Unity Editor, настройте эту симуляцию в свойствах модуля.
Purchases — это массив товаров для симуляции. Создайте или измените элементы массива и их параметры.
Готовое решение
Самый простой способ — использовать готовый префаб Payments Catalog из папки модуля Prefabs. Он автоматически отображает каталог всех товаров. Он создаёт экземпляры префаба из поля Purchase Prefab.
По умолчанию в данном поле ссылка на готовый префаб Purchase. Такой префаб должен иметь скрипт PurchaseYG
Скрипт PurchaseYG — отображает товар, все его данные. Можно использовать готовый префаб Purchase для отображения одного продукта. Для этого необходимо заполнить поле ID. Настройте остальное по предпочтениям.
При использовании префабов PluginYG рекомендуется создавать свой префаб вариант для избежания проблем при обновлении плагина.
Активация покупки
Чтобы выдать товар после его приобретения, подпишитесь на событие YG2.onPurchaseSuccess
. Оно передаёт ID покупки.
Сохранять купленные товары рекомендуется в PlayerStats.
Есть событие неуспешной покупки YG2.onFailedPurchased
, также передаёт ID покупки.
Обратите внимание на скрипт Receiving Purchase Example, он содержит следующий пример:
Консумирование (обязательно)
Может произойти ошибка, при которой деньги будут заплачены, но в игре товар не будет добавлен. Это называется необработанная покупка и её нужно консумировать.
При запуске игры необходимо проверять: есть ли необработанные покупки. Если есть, то консумировать их.
Консумировать — это значит выдать необработанное вознаграждение и сказать об этом платформе. Методы консумирования:
YG2.ConsumePurchases
— консумировать все покупки
YG2.ConsumePurchaseByID
— консумировать одну покупку, необходимо передать ID
Оба метода имеют перегрузку onPurchaseSuccess
.
По умолчанию данный параметр равен true — значит для необработанных покупок будет вызвано событие успешной покупки (onPurchaseSuccess
).
При значении false — событие успешной покупки не будет вызвано, в таком случае необходимо самостоятельно выдать продукт. Подробнее будет ниже.
Если ваши скрипты в момент консумирования будут подписаны на метод получения вознаграждения, то оно будет получено.
Вы можете просто воспользоваться компонентом ConsumePurchasesYG. Установите его на какой-либо объект, и когда он будет активен, скрипт проверит и консумирует необработанные покупки, если они есть, и вызовет для них событие вознаграждения. По умолчанию на префабе Payments Catalog уже содержится скрипт ConsumePurchasesYG.
Остальное API
После получения данных о покупках от SDK платформы — выполняется метод onGetPayments
. Он используется для обновления информации о покупках, вызывается при старте игры.
Метод YG2.BuyPayments(string id)
— открыть окно, в котором можно совершить покупку.
Если подключить пространство имён YG.Utils.Pay
, то появится доступ к классу Purchase
. Он имеет следующие поля:
id
— идентификатор товара.
title
— название товара.
description
— описание товара.
imageURIimageURI
— URL изображение товара.
price
— стоимость товара в формате <цена> <код валюты>
.
priceValue
— стоимость товара в формате <цена>
.
priceCurrencyCode
— код валюты.
currencyImageURL
— адрес иконки валюты.
consumed
— использован ли товар. true
— использован, false
— не использован.
Поле YG2.purchases
— массив всех товаров, тип Purchase[]
.
Метод YG2.PurchaseByID
— принимает ID товара, по нему выдаёт информацию о продукте (возвращает экземпляр класса Purchase
).
Поле YG2.langPayments
— язык в формате «код страны».
В YG2.player
(требуется модуль Autorization) имеется интересное поле payingStatus
: