-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayFabSKU.cs
134 lines (79 loc) · 3 KB
/
playFabSKU.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using PlayFab;
using PlayFab.ClientModels;
public class playFabSKU : MonoBehaviour {
public string sPlayFabCataloguieVersionNumber;
public List<sku> catalogueSkus;
//###########################################################################################################
// Get Catalogiue from Playfab
//###########################################################################################################
// get a list of all skus available to user
public void playFabGetCatalogue(){
onGetCatalogue ();
}
public void onGetCatalogue()
{
GetCatalogItemsRequest catalogueRequest = new GetCatalogItemsRequest();
catalogueRequest.CatalogVersion = sPlayFabCataloguieVersionNumber;
PlayFabClientAPI.GetCatalogItems(catalogueRequest, onCatalogueResult, onCatalogueError);
}
private void onCatalogueResult(GetCatalogItemsResult result)
{
Debug.Log ("Got items from Catalogue. No of items returned is:" + result.Catalog.Count);
int iCount = result.Catalog.Count;
catalogueSkus = new List<sku>();
//now add to sku list
//NOTE: only supports dollars
uint Cash;
for (int i = 0; i < iCount; i++){
result.Catalog [i].VirtualCurrencyPrices.TryGetValue ("RM", out Cash);
catalogueSkus.Add(new sku(false,result.Catalog[i].ItemId, result.Catalog[i].DisplayName, result.Catalog[i].Description, Cash));
}
//Check rights
GetInventory ();
}
//###########################################################################################################
// Get User Inventory from Playfab
//###########################################################################################################
// get a list of all skus available to user that they own
public void GetInventory()
{
GetUserInventoryRequest getUserInventoryRequest = new GetUserInventoryRequest();
PlayFabClientAPI.GetUserInventory(getUserInventoryRequest, onGetUserInventoryResult, onCatalogueError);
}
private void onGetUserInventoryResult(GetUserInventoryResult result)
{
int iCount = catalogueSkus.Count;
int iCountResult = result.Inventory.Count;
//loop through each item in catalogue and see if we own it
for (int i = 0; i < iCount; i++){
//loop through api result for inventory ownership details
for (int iAPI = 0; iAPI < iCountResult; iAPI++){
if (catalogueSkus [i].sItemID == result.Inventory [iAPI].ItemId) {
//we won it!
catalogueSkus[i].sPurchased = true;
catalogueSkus [i].sAmount = 0;
catalogueSkus [i].sDescription = "";
}
}
}
GetComponent<UXPlayFab> ().ShowHome ();
}
private void onCatalogueError(PlayFabError error)
{
Debug.LogWarning("Something went wrong with your purchase call. :(");
Debug.LogError("Here's some debug information:");
Debug.LogError(error.GenerateErrorReport());
}
void AddSkU(){
}
//
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}