我在统一中实现了 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);
}
}
}
你的处理方式是错误的。您确实应该阅读 SOOMLA 文档。这是我整理的 YouTube 教程。
基本上你需要: 1 - 首先,如果我是你,我不会自己管理经济,我宁愿让SOOMLA来做。如果您定义了货币包,那么成功购买后 SOOMLA 将自动充值您的余额。
2 - 否则,如果您想自己执行此操作,请设置 SOOMLA 提供的事件处理程序并在 OnItemPurchased 事件中执行此操作,该事件在成功的市场购买后触发。
3 - 确保核心和商店预置位于在整个游戏持续时间内仅加载一次的场景/页面上。
4 - 如果您想捕获 Store 中的错误,请不要使用 try catch 来实现,而是设置 OnUnexpectedErrorInTheStore 事件。
请阅读文档此处,作为旁注,不确定您是否知道,但 SOOMLA 在 answers.soom.la 有一个专门的支持论坛,您可以在其中获得更快的答案。
几点建议:
onSoomlaStoreInitialized
事件并在此之后才开始查询库存。PlayerPrefs
.