133 lines
3.3 KiB
C#
133 lines
3.3 KiB
C#
|
using System;
|
|||
|
using System.Text;
|
|||
|
using PlayFab;
|
|||
|
using PlayFab.ClientModels;
|
|||
|
using PlayFab.Json;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
public class PlayFabMatchMaking : MonoBehaviour
|
|||
|
{
|
|||
|
public void FindOpponentReplay(int trackIndex, int playerLevel, int handiCap, Action<string> callback)
|
|||
|
{
|
|||
|
if (!Singleton<PlayFabManager>.Instance.Initialized)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
ExecuteCloudScriptRequest request = new ExecuteCloudScriptRequest
|
|||
|
{
|
|||
|
FunctionName = "fetchOpponentReplay",
|
|||
|
FunctionParameter = new
|
|||
|
{
|
|||
|
trackIndex = trackIndex,
|
|||
|
playerLevel = playerLevel,
|
|||
|
handicap = handiCap
|
|||
|
}
|
|||
|
};
|
|||
|
PlayFabClientAPI.ExecuteCloudScript(request, delegate(ExecuteCloudScriptResult result)
|
|||
|
{
|
|||
|
if (result.Logs != null)
|
|||
|
{
|
|||
|
foreach (LogStatement logStatement in result.Logs)
|
|||
|
{
|
|||
|
StringBuilder stringBuilder = new StringBuilder();
|
|||
|
if (logStatement.Data != null)
|
|||
|
{
|
|||
|
stringBuilder.AppendFormat("Data: '{0}'\n", logStatement.Data);
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(logStatement.Level))
|
|||
|
{
|
|||
|
stringBuilder.AppendFormat("Level: '{0}'\n", logStatement.Level);
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(logStatement.Message))
|
|||
|
{
|
|||
|
stringBuilder.AppendFormat("Message: '{0}'\n", logStatement.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
string key = "replay";
|
|||
|
string obj = string.Empty;
|
|||
|
UnityEngine.Debug.Log("[PlayFabManager] result.FunctionResult: " + JsonWrapper.SerializeObject(result.FunctionResult));
|
|||
|
JsonObject jsonObject = (JsonObject)result.FunctionResult;
|
|||
|
if (jsonObject != null)
|
|||
|
{
|
|||
|
if (jsonObject.ContainsKey(key) && jsonObject[key] is JsonObject && ((JsonObject)jsonObject[key]).ContainsKey("Value"))
|
|||
|
{
|
|||
|
obj = ((JsonObject)jsonObject[key])["Value"].ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
CakeRaceMenu.UseDefaultReplay = true;
|
|||
|
}
|
|||
|
}
|
|||
|
if (callback != null)
|
|||
|
{
|
|||
|
callback(obj);
|
|||
|
}
|
|||
|
}, delegate(PlayFabError error)
|
|||
|
{
|
|||
|
CakeRaceMenu.UseDefaultReplay = true;
|
|||
|
if (callback != null)
|
|||
|
{
|
|||
|
callback(string.Empty);
|
|||
|
}
|
|||
|
}, null, null);
|
|||
|
}
|
|||
|
|
|||
|
public void GetCakeRaceWeek(Action<string, string> callback)
|
|||
|
{
|
|||
|
if (!Singleton<PlayFabManager>.Instance.Initialized)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
|
|||
|
{
|
|||
|
FunctionName = "fetchCakeRaceWeek"
|
|||
|
}, delegate(ExecuteCloudScriptResult result)
|
|||
|
{
|
|||
|
if (result.Logs != null)
|
|||
|
{
|
|||
|
foreach (LogStatement logStatement in result.Logs)
|
|||
|
{
|
|||
|
StringBuilder stringBuilder = new StringBuilder();
|
|||
|
if (logStatement.Data != null)
|
|||
|
{
|
|||
|
stringBuilder.AppendFormat("Data: '{0}'\n", logStatement.Data);
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(logStatement.Level))
|
|||
|
{
|
|||
|
stringBuilder.AppendFormat("Level: '{0}'\n", logStatement.Level);
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(logStatement.Message))
|
|||
|
{
|
|||
|
stringBuilder.AppendFormat("Message: '{0}'\n", logStatement.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
string arg = string.Empty;
|
|||
|
string arg2 = string.Empty;
|
|||
|
JsonObject jsonObject = (JsonObject)result.FunctionResult;
|
|||
|
if (jsonObject != null)
|
|||
|
{
|
|||
|
if (jsonObject.ContainsKey("week"))
|
|||
|
{
|
|||
|
arg = jsonObject["week"].ToString();
|
|||
|
}
|
|||
|
if (jsonObject.ContainsKey("daysleft"))
|
|||
|
{
|
|||
|
arg2 = jsonObject["daysleft"].ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
if (callback != null)
|
|||
|
{
|
|||
|
callback(arg, arg2);
|
|||
|
}
|
|||
|
}, delegate(PlayFabError error)
|
|||
|
{
|
|||
|
if (callback != null)
|
|||
|
{
|
|||
|
callback(string.Empty, string.Empty);
|
|||
|
}
|
|||
|
}, null, null);
|
|||
|
}
|
|||
|
}
|