Select your preferred scripting language. All code snippets will be displayed in this language.
class in UnityEngine.Purchasing
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
CloseRepresents a product that may be purchased as an In-App Purchase.
Here is an example of a sample Store class working with a Product referencs.
#pragma strict public class MyStoreClass extends MonoBehaviour { static var kProductID100Currency: String = "virtualcurrency_100"; var m_StoreController: IStoreController; function Awake() { var builder: ConfigurationBuilder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(kProductID100Currency, ProductType.Consumable); UnityPurchasing.Initialize(this, builder); } public function PurchaseCurrency() { if (m_StoreController != null) { // Fetch the currency Product reference from Unity Purchasing var product: Product = m_StoreController.products.WithID(kProductID100Currency); if (product != null && product.availableToPurchase) { m_StoreController.InitiatePurchase(product); } } } public function OnInitialized(controller: IStoreController, extensions: IExtensionProvider) { m_StoreController = controller; } public function OnInitializeFailed(error: InitializationFailureReason) { } public function ProcessPurchase(e: PurchaseEventArgs) { if (String.Equals(e.purchasedProduct.definition.id, kProductID100Currency, StringComparison.Ordinal)) { Debug.Log("Purchased 100 coins"); } return PurchaseProcessingResult.Complete; } public function OnPurchaseFailed(item: Product, r: PurchaseFailureReason) { } }
using System; using UnityEngine; using UnityEngine.Purchasing;
public class MyStoreClass : MonoBehaviour, IStoreListener { static string kProductID100Currency = "virtualcurrency_100"; IStoreController m_StoreController; void Awake() { ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(kProductID100Currency, ProductType.Consumable); UnityPurchasing.Initialize(this, builder); }
public void PurchaseCurrency() { if (m_StoreController != null) { // Fetch the currency Product reference from Unity Purchasing Product product = m_StoreController.products.WithID(kProductID100Currency); if (product != null && product.availableToPurchase) { m_StoreController.InitiatePurchase(product); } } }
public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { m_StoreController = controller; }
public void OnInitializeFailed(InitializationFailureReason error) {} public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { if (String.Equals(e.purchasedProduct.definition.id, kProductID100Currency, StringComparison.Ordinal)) { Debug.Log("Purchased 100 coins"); } return PurchaseProcessingResult.Complete; }
public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {} }
availableToPurchase | Determine if this product is available to purchase according to the store subsystem. |
definition | Fundamental immutable product properties. |
hasReceipt | Owned Non Consumables and Subscriptions should always have receipts. |
metadata | Localized metadata provided by the store system. |
receipt | The purchase receipt for this product, if owned. Otherwise null. |
transactionID | A unique identifier for this product's transaction, if available. Otherwise null. |
Equals | Equality defined for use in collections. |
GetHashCode | GetHashCode defined for use in collections. |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information