INITIALIZATION
Initialization
After configuring, the Xsolla SDK for Unity needs to be initialized and connected to Xsolla services.
- Unity IAP
- Without Unity IAP
PREREQUISITE
Make sure Unity In-App Purchasing 4.15+ is installed.
See the official Unity IAP setup guide ↗ (https://docs.unity3d.com/Packages/[email protected]/manual/GettingStarted.html).
⚠️ Unity In-App Purchasing 5.x is NOT supported at this moment.
public class App : MonoBehaviour, IStoreListener
{
private IStoreController _storeController;
void Start()
{
// See the configuration step for more details on how to prepare a config.
var configuration = ...
var module = XsollaPurchasingModule.Builder.Create()
.SetConfiguration(configuration)
.Build();
var configurationBuilder = ConfigurationBuilder
.Instance(module)
.AddProduct("product1", ProductType.Consumable)
.AddProduct("product2", ProductType.Consumable)
.AddProduct("product3", ProductType.Consumable)
.AddProduct("product4", ProductType.Consumable);
UnityPurchasing.Initialize(this, configurationBuilder);
}
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
_storeController = controller;
// handle initialized
}
public void OnInitializeFailed(InitializationFailureReason error)
{
// handle initialization failed
}
public void OnInitializeFailed(InitializationFailureReason error, string message)
{
// handle initialization failed
}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs purchaseEvent)
{
// implement purchase flow
return PurchaseProcessingResult.Complete;
}
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
{
// handle purchase failed
}
public void OnPurchaseFailed(Product product, PurchaseFailureDescription failureDescription)
{
// handle purchase failed
}
}
var storeClient = XsollaStoreClient.Builder.Create()
.SetConfiguration(configuration)
.SetOnRestore((item, error) => {
if (error != null)
{
// handle error
return;
}
// handle delayed purchased item
})
.AddProducts(productIds)
.AddProduct("product1")
.AddProduct("product2")
.AddProduct("product3")
.AddProduct("product4")
.Build();
storeClient.Initialize((products, error) =>
{
if (error != null)
{
// handle error
return;
}
// products contains all requested products
});
The SDK loads only Virtual Items from your Xsolla Catalog — Virtual Currency, Bundles, and other catalog types are not returned.