gpt4 book ai didi

c# - 缺少方法 UnityEngine.VR.VRSettings.get_enabled |未处理 Unity IAP 购买 |安卓

转载 作者:搜寻专家 更新时间:2023-11-01 09:22:20 24 4
gpt4 key购买 nike

我在 google play 商店上有一个应用程序内购买的应用程序。

我正在遵循 Unity 网站上的 IAP 指南...但我遇到了 ProcessPurchase 方法在调用 BuyProductID() 后未运行的问题。

我发布了我的应用程序的 alpha 版本以进行测试,并在我的应用程序中制作了一个调试标签以供反馈。

我的代码的相关部分如下所示:

public class PurchasingManager : MonoBehaviour, IStoreListener
{

private static IStoreController m_StoreController;
private static IExtensionProvider m_StoreExtensionProvider;

public Text debugLabel;

public static string product_noAds = "noads";
public static string product_pts1000 = "pts1000";

void Start() {...}
void IsInitialized() {...}

public void InitializePurchasing() {
if (IsInitialized())
return;

debugLabel.text = "Initializing...";

var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());

builder.AddProduct(product_noAds, ProductType.NonConsumable);
builder.AddProduct(product_pts1000, ProductType.Consumable);

UnityPurchasing.Initialize(this, builder);
}


public void OnInitialized(IStoreController controller, IExtensionProvider extensions) {
debugLabel.text = "OnInitialized: PASS";
m_StoreController = controller;
m_StoreExtensionProvider = extensions;
}

public void OnInitializeFailed(InitializationFailureReason error) {
dt.text = "OnInitializeFailed InitializationFailureReason:" + error;
}


public void Buy_noads() {
debugLabel.text = "BUYING noads";
BuyProductID(product_noAds);
}

public void Buy_pts1000() {
debugLabel.text = "BUYING 1000";
BuyProductID(product_pts1000);
}

private void BuyProductID(string productId) {
if (IsInitialized()) {
Product product = m_StoreController.products.WithID(productId);
if (product != null && product.availableToPurchase)
{
debugLabel.text = "intializing the purchase";
m_StoreController.InitiatePurchase(product);
}
}
}

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{

debugLabel.text = "Processing Purchase now...";

if (String.Equals(args.purchasedProduct.definition.id, product_noAds, StringComparison.Ordinal)) {
debugLabel.text = "PURCAHSE noads";
shop.Purchase(500);
PlayerPrefs.SetInt("noads", 1);
}
else if (String.Equals(args.purchasedProduct.definition.id, product_pts1000, StringComparison.Ordinal)) {
shop.Purchase(1000);
debugLabel.text = "PURCAHSE 1000";
}
else {
debugLabel.text = string.Format("ProcessPurchase: FAIL. Unrecognized product: '{0}'", args.purchasedProduct.definition.id);
}

return PurchaseProcessingResult.Complete;

}

public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) {
debugLabel.text = string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason);
}

}

所以在我启动我的应用程序后,调试标签显示:“Initializing...”,然后是“OnInitialized:PASS”。

如果我点击按钮购买两种产品中的任何一种,标签上写着:“正在开始购买”,但它停在那里,没有任何反应。

ProcessPurchase 从未被调用,因为标签没有改变...为什么不被调用?据我所知,没有任何错误,只是什么也没发生。

如有任何帮助,我们将不胜感激。

我应该补充一点,我遵循了这个 YouTube 教程:https://www.youtube.com/watch?v=3IQ-CvBQz0o&t=73s

编辑:

使用 adb logcat 我看到 unity 打印了这个错误... MissingMethodException

这是什么意思?

最佳答案

看来您需要更新 Unity 或 IAP API。在这里您可以找到如何 Remove and Reinstall Unity IAP .该解决方案帮助了与您有类似问题的人。

关于c# - 缺少方法 UnityEngine.VR.VRSettings.get_enabled |未处理 Unity IAP 购买 |安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53777541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com