
高级方式:
创建脚本Shopping.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Purchasing;
using UnityEngine;
using UnityEngine.UI;
//IAP组件相关的对象,m_Controller里存储着商品信息
private IStoreController m_Controller;
private IAppleExtensions m_AppleExtensions;
//IAP可用状态
private bool PurchaseAvailable=true;
//是否初始化成功
private bool InternetAvailable;
void OnEnable(){
//如果没有连击网络,关闭IAP功能
f(Application.internetReachability==NetworkReachability.NotReachable){
PurchaseAvailable=false;
}else{
PurchaseAvailable=true;
//如果没有初始化成功
if(InternetAvailable==false){
InitUnityPurchase();
}
}
//初始化方法
public void InitUnityPurchase(){
var module = StandardPurchasingModule.Instance();
var builder = ConfigurationBuilder.Instance (module);
//添加多个ID到builder里,ID命名方式建议字母+数字结尾,比如ShuiJing_1,ShuiJing_2,
//注意ProductType的类型,Consumable是可以无限购买(比如水晶),NonConsumable是只能购买一次(比如关卡),Subscription是每月订阅(比如VIP)
for(int i=0;i<你有多少商品就写多少;i++){
builder.AddProduct("你的商品ID"+i.ToString(), ProductType.Consumable);
}
//开始初始化
UnityPurchasing.Initialize(this,builder);
}
//初始化成功回调
public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
{
m_Controller = controller;
m_AppleExtensions = extensions.GetExtension<IAppleExtensions> ();
//登记购买延迟监听器
m_AppleExtensions.RegisterPurchaseDeferredListener(OnDeferred);
//初始化成功
InternetAvailable=true;
}
//初始化失败回调
public void OnInitializeFailed (InitializationFailureReason error)
{
InternetAvailable=false;
if(error==InitializationFailureReason.PurchasingUnavailable){
print("你手机设置了禁止APP内购");
}
}
//购买失败回调
public void OnPurchaseFailed(Product item, PurchaseFailureReason r)
{
print("手机没连WIFI 吗?");
}
//购买延迟提示
private void OnDeferred(Product item)
{
print("请勿下载黄!网速那么慢!");
}
//发起购买函数,在你的商品按钮上拖这个方法进入,
public void OnPurchaseClicked(int ButtonId)
{
m_Controller.InitiatePurchase("你的商品ID_"+ButtonId.ToString());
}