时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Google Developers网络
小提示:您能找到这篇{在 Unity 项目中使用 Google Play 结算库}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的在 Unity 项目中使用 Google Play 结算库内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
Google Play结算服务插件扩展了Unity的应用内购买内置服务和资产(名为Unity IAP),可以为您的游戏提供Google Play结算库的所有最新功能。本指南介绍了如何设置您的项目以使用此插件,还介绍了如何在通过Unity开发的游戏中实现结算库功能。 设置Google Play结算服务插件 如需设置此插件,请完成以下每个链接部分中的步骤: 启用Unity IAP抽象层。 下载并导入插件。 配置插件的构建设置。 启用插件。 启用Unity IAP抽象层 Google Play结算服务插件基于Unity IAP中自带的抽象层,因此您需要启用此抽象层后才能下载并导入该插件。如需启用Unity IAP抽象层,请执行以下操作: 完成以下Unity教程中的所有步骤:针对Unity服务设置项目。 完成以下Unity教程中的所有步骤:启用Unity IAP服务。 下载并导入插件 插件将作为.unitypackage格式的Unity软件包提供。如需下载并导入插件,请按以下步骤操作: 从代码库的GitHub版本页面中下载适用于Unity的最新版Google Play插件。 在Unity菜单栏中,依次点击Assets>Import Package>Custom Package。 找到.unitypackage文件的下载位置并选择该文件。 在Import Unity Package对话框中,选择所有资产并点击Import。 软件包导入后,系统会在项目的资产中添加一个名为GooglePlayPlugins的新文件夹(位于Assets文件夹的根目录下)。此文件夹包含插件的所有结算库资产。 配置构建设置 由于插件扩展了Unity IAP,因此除非从build中移除Unity IA平台 开发P中一些较旧的重叠依赖项,否则Unity会遇到冲突且无法构建Android APK。插件提供了一种从项目中自动移除冲突库的方法。如需解决这些冲突,请按以下步骤操作: 从Unity菜单栏中依次选择Google>Play Billing>Build Settings。 在“Play Billing Build Settings”窗口中,点击Fix。这样就可以解决冲突并将冲突的Unity IAP文件移至备份目录。点击Fix后,该按钮会变成Restore,点击后可恢复原始的冲突文件。 启用插件 如需启用插件,请将Google Play的Unity IAP实现替换为Google Play结算服务插件。例如,使用Unity IAP购买者脚本时,您要更改传递到IAP构建器中的StandardPurchaseModule以使用Google.Play.Billing.GooglePlayStoreModule: //Create a builder using the GooglePlayStoreModule. var configurationBuilder= Configuration炒作Builder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance()); 注意:为了避免与Unity的标准IAP实现发生冲突,每当代码引用Google Play结算服务插件中的公共类时,您都应该通过包含Google.Play.Billing完整地指定命名空间。本指南中的所有代码示例均采用此方法。 如果您的游戏将同一个购买者脚本用于多个平台,应添加一项平台检查,确保Unity针对其他平台继续使用自己的IAP解决方案: ConfigurationBuilder builder; if(Application.platform==RuntimePlatform.Android) { builder=ConfigurationBuilder.Instance( Google.Play.Billing.GooglePlayStoreModule.Instance()); } else { builder=ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); } 如果您在除Google Play商店以外的其他Android应用商店中发布游戏,则只有在选择Google Play商店时才应替换默认的Unity IAP实现: ConfigurationBuilder builder; if(Application.platform==RuntimePlatform.Android &&SelectedAndoidAppStore==AppStore.GooglePlay) { builder=ConfigurationBuilder.Instance( Google.Play.Billing.GooglePlayStoreModule.Instance()); } else { builder=ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); } 在游戏中实现Google Play结算库功能 Google Play结算服务插件扩展了Unity IAP服务,因此您可以使用相同的Unity API管理通用的购买流程。请注意,由于结算库与其他应用商店的Unity标准IAP实现之间存在差异,因此API行为也发生了一些细微变化。如果您是Unity IAP API新手,请参阅Unity IAP教程中的“Making a Purchase Script”部分,通过示例了解如何实现基本购买流程。 结算库还包括一些Google Play商店独有的功能。您可以通过扩展接口访问这些功能。本部分的其余内容介绍了如何在游戏中实现这些独有的结算库功能。 启用推迟购买功能 Google Play支持推迟购买(也称为待处理的交易或待处理的购买交易),在这种情况下,用户可以创建购买交易并稍后在实体店中使用现金完成购买交易。 如需启用推迟购买功能,请在IAP构建器中调用EnableDeferredPurchase()方法修改模块配置: //Create a builder using a GooglePlayStoreModule. var configurationBuilder= ConfigurationBuilder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance()); //Enable deferred purchases configurationBuilder.Configure<Google.Play.Billing.IGooglePlayConfiguration>() .EnableDeferredPurchase(); 接下来,使用Play商店扩展程序实现推迟购买回调: //Get the plugin extensions for the Google Play Store. _playStoreExtensions= extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>(); //Set the deferred purchases callback. _playStoreExtensions.SetDeferredPurchaseListener( delegate(Product product) { //Do not grant the item here.Instead,record the purchase and remind //the user to complete the transaction in the Play Store. }); 向Google Play传递经过混淆处理的帐号ID 您可以向Google Play传递经过混淆处理的用户帐号ID以方便检测滥用行为,例如检测是否有大量设备在短时间内使用同一帐号进行购买。 注意:此帐号ID也会与购买数据一起返回。如果您使用开发者载荷识别用户,则可以使用此帐号ID取而代之。 如需传递经过混淆处理的帐号ID,请从扩展程序API调用SetObfuscatedAccountId()方法: //Get the plugin extensions for the Google Play Store. _playStoreExtensions= extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>(); //Pass an obfuscated account ID.茂名网站开发 _playStoreExtensions.SetObfuscatedAccountId(obfuscatedAccountId); 向Google Play传递经过混淆处理的个人资料ID 您可以向Google Play传递经过混淆处理的个人资料ID以方便检测欺诈行为,例如检测是否有大量设备在短时间内使用同一帐号进行购买。这与传递经过混淆处理的用户帐号ID类似。在这两种情况下,ID都代表单个用户,但是个人资料ID可以帮助您从单个应用中的多份个人资料里唯一识别出单个用户。向Google Play传递经过混淆处理的个人资料ID后,您日后便可以在购买收据中检索此ID。 如需传递经过混淆处理的个人资料ID,请在IAP构建器中调用SetObfuscatedProfileId()方法修改模块配置: //Get the plugin extensions for the Google Play Store. _playStoreExtensions= extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>(); //Pass an obfuscated profile ID. _playStoreExtensions.SetObfuscatedProfileId(obfuscatedProfileId); 确认订阅的价格变动 您可以通过Google Play更改有效订阅的价格。游戏的用户必须先确认任何价格变动,然后更改才能生效。如需提示用户确认其订阅的价格变动,请调用ConfirmSubscriptionPriceChange()方法: //Get the plugin extensions for the Google Play Store. _playStoreExtensions= extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>(); _playStoreExtensions.ConfirmSubscriptionPriceChange(productId, delegate(bool success) { //Returns whether the user has accepted the new price or not. }); Unity API行为的变化 在您使用Google Play结算服务插件时,大多数API行为与其他应用商店的Unity标准IAP实现的行为相同。但在某些情况下,API的行为会有所不同。本部分介绍了这些行为差异。 不支持开发者载荷 Google Play已弃用开发者载荷,并用更有意义且更相关的替代方法代替它。因此,API不支持开发者载荷。如需详细了解替代方法,请参阅开发者载荷的相关页面。 您可以继续在其他应用商店中使用Unity标准IAP实现所定义的接口,包括IStoreControllor。当您提示购买时,您仍可使用IStoreControllor并调用InitiatePurchase()方法: public void InitiatePurchase(Purchasing.Product product,string payload); 但是,您传入的任何载荷都不会生效(不会出现在最终收据中)。 不支持SubscriptionManager Unity IAP提供了管理订阅的SubscriptionManager类。由于此类的Unity标准IAP实现使用开发者载荷,因此不支持此类。您仍然可以创建此类,但是当您使用该类的任何getter方法时,您可能会收到不可靠的数据。 UpdateSubscription出现细微的API变更 Google Play结算服务插件不支持使用SubscriptionManager.UpdateSubscription()和SubscriptionManager.UpdateSubscriptionInGooglePlayStore()方法升级和降级您的订阅。如果您的游戏调用了这些方法,系统会抛出GooglePlayStoreUnsupportedException。 结算库提供了一个替代API来代替这些方法。如需升级或降级订阅,请调用使用按比例计费模式的UpdateSubscription()方法: void UpdateSubscription(Product oldProduct,Product newProduct, GooglePlayStoreProrationMode prorationMode=GooglePlayStoreProrationMode.Unknown); 您可以用平台检查封装此方法调用,也可以在捕获GooglePlayStoreUnsupportedeException时将其封装在catch块中。 如需了解按比例计费模式的详细使用方法和示例,请参阅设置按比例计费模式。 |
上一篇:Google Play 结算系统:开发者载荷
下一篇:Audience Network 原生、横幅和插屏版位 图片广告发
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“在 Unity 项目中使用 Google Play 结算库”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通在 Unity 项目中使用 Google Play 结算库的相关事宜。
关键词:在,Unity,项目中使用,Googl