예제 #1
0
    public void GetUserData(string key, string playerPlayFabID, Action <GetUserDataResultHolder> OnFinished = null)
    {
        GetUserDataResultHolder finalResultHolder = new GetUserDataResultHolder();

        PlayFabClientAPI.GetUserData(new GetUserDataRequest()
        {
            PlayFabId = playerPlayFabID,
            Keys      = null
        }, result =>
        {
            Debug.Log("Got user " + playerPlayFabID + " data:");
            if (result.Data == null || !result.Data.ContainsKey(key))
            {
                Debug.Log("No key for " + key + " for user " + playerPlayFabID);
                finalResultHolder.response = Response.noKey;
            }
            else
            {
                //Debug.Log("key: " + result.Data[key].Value);
                finalResultHolder.response = Response.result;
                finalResultHolder.value    = result.Data[key].Value;
            }
            OnFinished?.Invoke(finalResultHolder);
        }, (error) =>
        {
            Debug.Log("Got error retrieving " + playerPlayFabID + " user data: ");
            Debug.Log(error.GenerateErrorReport());
            finalResultHolder.response = Response.Error;
            OnFinished?.Invoke(finalResultHolder);
        });
    }
예제 #2
0
    private void OnFinishedGettingLevelData(GetUserDataResultHolder levelCountRequestResult)
    {
        switch (levelCountRequestResult.response)
        {
        case Response.Error:
            Debug.Log("Error in getting levels data.");
            break;

        case Response.noKey:
            Debug.Log("No level found with this key.");
            break;

        case Response.result:
            LoadLevel.instance.LoadLevelWithCode(levelCountRequestResult.value);
            break;
        }
    }
예제 #3
0
    private void OnFinishedGettingLevelAmount(GetUserDataResultHolder levelCountRequestResult)
    {
        switch (levelCountRequestResult.response)
        {
        case Response.Error:
            Debug.Log("Error in getting shared levels amount");
            sharedLevelsAmount = -1;
            break;

        case Response.noKey:
            sharedLevelsAmount = 0;
            break;

        case Response.result:
            sharedLevelsAmount = int.Parse(levelCountRequestResult.value);
            break;
        }

        _afterGettingLevelAmountDelegate.Invoke();
    }
예제 #4
0
    public void GetUserReadOnlyData(string playFabId, string key, Action <GetUserDataResultHolder> onFinished = null)
    {
        GetUserDataResultHolder finalResultHolder = new GetUserDataResultHolder();

        PlayFabServerAPI.GetUserReadOnlyData(new PlayFab.ServerModels.GetUserDataRequest()
        {
            PlayFabId = playFabId,
            Keys      = new List <string>()
            {
                key
            },
        },
                                             result =>
        {
            if (result.Data == null || !result.Data.ContainsKey(key))
            {
                Debug.Log("No " + key);
                finalResultHolder.response = Response.noKey;
            }
            else
            {
                Debug.Log(key + ": " + result.Data[key].Value);
                finalResultHolder.response = Response.result;
                finalResultHolder.value    = result.Data[key].Value;
            }

            onFinished?.Invoke(finalResultHolder);
        },
                                             error =>
        {
            Debug.Log("Got error getting read-only user data:");
            Debug.Log(error.GenerateErrorReport());
            finalResultHolder.response = Response.Error;
            onFinished?.Invoke(finalResultHolder);
        });
    }