购买成功完成后,Unity Soomla 分数未更新

问题描述 投票:0回答:2

我在统一中实现了 Android 的 Soomla inn 应用程序购买,它工作正常,但当购买成功完成我所做的事情时,我的分数没有更新。我设置了“android.test.purchased”进行购买。这是我的代码

void Start () 
{
    PlayerPrefs.SetInt("Score" ,0)
}

void CheckIAP_PurchaseStatus()
{
    //What I do here ????? below check not working for me
    if (StoreInventory.IsVirtualGoodEquipped ("coinspack_a_item_id"))
    {
        PlayerPrefs.SetInt("Score" , PlayerPrefs.GetInt("Score") + 8000);    
    }
}

void OnGUI () 
{
    if (GUI.Button(new Rect(10, 10, 50, 50), "Buy"))
    {
        try
        {
            StoreInventory.BuyItem ("coinspack_a_item_id");                                 
        } 
        catch (Exception e) 
        {   
            Debug.Log ("SOOMLA/UNITY" + e.Message); 
        }
    }
}
c# unity-game-engine in-app-billing soomla
2个回答
0
投票

你的处理方式是错误的。您确实应该阅读 SOOMLA 文档。这是我整理的 YouTube 教程

基本上你需要: 1 - 首先,如果我是你,我不会自己管理经济,我宁愿让SOOMLA来做。如果您定义了货币包,那么成功购买后 SOOMLA 将自动充值您的余额。

2 - 否则,如果您想自己执行此操作,请设置 SOOMLA 提供的事件处理程序并在 OnItemPurchased 事件中执行此操作,该事件在成功的市场购买后触发。

3 - 确保核心和商店预置位于在整个游戏持续时间内仅加载一次的场景/页面上。

4 - 如果您想捕获 Store 中的错误,请不要使用 try catch 来实现,而是设置 OnUnexpectedErrorInTheStore 事件。

请阅读文档此处,作为旁注,不确定您是否知道,但 SOOMLA 在 answers.soom.la 有一个专门的支持论坛,您可以在其中获得更快的答案。


0
投票

几点建议:

  • 确保您监听了
    onSoomlaStoreInitialized
    事件并在此之后才开始查询库存。
  • 处理其他触发的 SOOMLA 事件以表明购买成功。 请参阅此处:http://know.soom.la/unity/store/store_events/
  • 考虑使用 SOOMLA LevelUp - 这是另一个开源包,提供了丰富的世界、关卡、分数、任务、奖励等模型。它还为您处理存储方面的问题,因此您无需自己调用
    PlayerPrefs
    .
  • 将此问题发布到 SOOMLA 论坛:http://answers.soom.la/
© www.soinside.com 2019 - 2024. All rights reserved.