Делаю игрушку на юнити под гугл плей, дошел до мест связанных с монетизацией.
И задался таким вопросом. Вот создал я продукт non consumable на отключение рекламы. Он должен будет спокойно сработать пока игра стоит на устройстве. Но что произойдет, если игрок сменит девайс? Или просто на какое-то время удалит игру.
Нет ли какой нибудь функции в серверах гугл плея, чтоб узнать, а был ли куплен этот “итем”?
У меня есть только смутные предположения по реализации этой механики, допустим через сохранение в облаке. Но и с ним не все гладко. В моей игре игрок может сбрасывать прогресс, она офлайн. Итог, как угадать когда данные нужно загрузить с сервера, а когда загрузить на сервер? Он может сбросить прогресс и начать по новой без сети… Потом подключиться к сети и игра такая “о, что-то его дата меньше моей, давай дам ему сохранение с облака”…
Если найдется гуру, который сможет мне объяснить это на пальцах, будет очень круто))
Заранее спасибо!
On platforms that support it (e.g. Google Play and Universal Windows Applications) Unity IAP automatically restores any products the user owns during the first initialization following reinstallation; the ProcessPurchase method of your IStoreListener will be called for each owned item.
Тоже находил этот кусочек кода, но не понял как его реализовать
Где именно в программе его использовать? В каком виде вернутся Id’шники?
Чем дольше сижу за разработкой, тем больше понимаю, что ничего не понимаю
Какой? extensions.GetExtension<IAppleExtensions> ().RestoreTransactions это для айфонов. Для гугл.плея написано, что оно само всё сделает, и вызовет ProcessPurchase.
Мне это и не понятно.
Как игра получит нужный Id и реализует код с ним связанный
public void OnPurchaseComplete(Product product)
{
switch (product.definition.id)
{
case "slime_disabling_ads":
DisablingAds();
break;
}
}
Сама при запуске прогонит себя по всему switch (если он будет большим) и выполнит действия на все non consumable продукты?
Похоже пора перестать думать, скомпилировать игру и залить на гугл для проверки опытным путем