UnityIAPを個人的に使いやすくまとめたものです。
iOS/Androidのみ対応です。
同封のUnity-IAPManager.unitypackageをそのままインポートするだけです。
IAPManagerを使用するためにWindow>ServiceからIn-App Purchasingを有効にし、UnityIAPパッケージをインポートしてください。
IAPManagerを空のGameObjectにアタッチし、Inspectorで各ストアアイテムの情報を登録します。
iOSとAndroid二つの項目が用意されているのでそれぞれ入力します。
IAPManagerの各処理のイベントを受け取るためにイベントハンドラを設定します。
public IAPManager iapManager;
void Awake () {
iapManager.OnInitializedEvent = OnInitialized;
iapManager.OnInitializeFailedEvent = OnInitializeFailed;
iapManager.OnPurchaseCompletedEvent = OnPurchaseCompleted;
iapManager.OnPurchaseFailedEvent = OnPurchaseFailed;
iapManager.OnRestoreCompletedEvent = OnRestoreCompleted;
}
// 初期化完了
private void OnInitialized(IAPManager.PurchaseItemData[] items) {
// 初期化完了処理
}
// 初期化失敗
private void OnInitializeFailed(string error) {
// エラー処理
}
// 購入完了
private void OnPurchaseCompleted(IAPManager.PurchaseItemData itemData) {
// 購入完了処理
}
// 購入失敗
private void OnPurchaseFailed(IAPManager.PurchaseItemData item) {
// 購入失敗処理
}
// リストア完了
private void OnRestoreCompleted () {
// リストア完了処理
}
IAPManagerクラスのPurchaseクラスにアイテムのindexを引数として渡します。
// アイテム購入ボタンが押された
public void OnTapPurchaseButton (int itemIndex) {
// 購入
iapManager.Purchase (itemIndex);
}
購入済みのアイテムを復元します。
復元されたアイテム情報はOnPurchaseCompletedEventにて受け取ります。
// アイテム購入ボタンが押された
public void OnTapRestoreButton () {
// リストア
iapManager.Restore ();
}
Unity 2017.3.0p3
macOS High Sierra 10.13.3