|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using PlayFab;
|
|
|
|
using PlayFab.ClientModels;
|
|
|
|
using UnityEngine;
|
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
|
|
|
|
public class PlayFabInit : MonoBehaviour
|
|
|
|
{
|
|
|
|
public string playFabTitleId = "7D3B9"; // Replace with your PlayFab Title ID
|
|
|
|
void Start()
|
|
|
|
{
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(PlayFabSettings.TitleId))
|
|
|
|
{
|
|
|
|
PlayFabSettings.TitleId = playFabTitleId;
|
|
|
|
}
|
|
|
|
Login();
|
|
|
|
}
|
|
|
|
|
|
|
|
void Login()
|
|
|
|
{
|
|
|
|
var request = new LoginWithCustomIDRequest
|
|
|
|
{
|
|
|
|
CustomId = SystemInfo.deviceUniqueIdentifier,
|
|
|
|
CreateAccount = true,
|
|
|
|
// InfoRequestParameters = new GetPlayerCombinedInfoRequestParams
|
|
|
|
// {
|
|
|
|
// GetPlayerProfile = true, // This will include player profile data in the login response
|
|
|
|
// ProfileConstraints = new PlayerProfileViewConstraints
|
|
|
|
// {
|
|
|
|
// ShowDisplayName = true,
|
|
|
|
// ShowAvatarUrl = true,
|
|
|
|
// ShowCreated = true
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
};
|
|
|
|
|
|
|
|
PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnLoginSuccess(LoginResult result)
|
|
|
|
{
|
|
|
|
Debug.Log("Login successful!");
|
|
|
|
GetPlayerProfile();
|
|
|
|
GetCustomUserData();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void GetCustomUserData()
|
|
|
|
{
|
|
|
|
GetPlayerProfileWithUserData();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void GetPlayerProfileWithUserData()
|
|
|
|
{
|
|
|
|
var request = new GetPlayerCombinedInfoRequest
|
|
|
|
{
|
|
|
|
PlayFabId = PlayFabSettings.staticPlayer.PlayFabId, // Use the logged-in player's PlayFab ID
|
|
|
|
InfoRequestParameters = new GetPlayerCombinedInfoRequestParams
|
|
|
|
{
|
|
|
|
GetUserData = true // This will include User Data like AvatarID in the response
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
PlayFabClientAPI.GetPlayerCombinedInfo(request, OnGetCombinedInfoSuccess, OnGetCombinedInfoFailure);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnGetCombinedInfoSuccess(GetPlayerCombinedInfoResult result)
|
|
|
|
{
|
|
|
|
var userData = result.InfoResultPayload.UserData;
|
|
|
|
PlayFabManager.Instance.playFabUserDataManager.myCustomData = userData;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnGetCombinedInfoFailure(PlayFabError error)
|
|
|
|
{
|
|
|
|
Debug.LogError("Failed to get combined player info: " + error.GenerateErrorReport());
|
|
|
|
}
|
|
|
|
|
|
|
|
public void GetPlayerProfile()
|
|
|
|
{
|
|
|
|
var request = new GetPlayerProfileRequest
|
|
|
|
{
|
|
|
|
PlayFabId = PlayFabSettings.staticPlayer.PlayFabId,
|
|
|
|
ProfileConstraints = new PlayerProfileViewConstraints
|
|
|
|
{
|
|
|
|
ShowDisplayName = true, // Allowed by your title settings
|
|
|
|
// Do not request AvatarUrl or other fields, since they are disallowed
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
PlayFabClientAPI.GetPlayerProfile(request, OnGetProfileSuccess, OnGetProfileFailure);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnGetProfileFailure(PlayFabError obj)
|
|
|
|
{
|
|
|
|
Debug.LogError("Couldn't Fetch Player Profile " + obj.GenerateErrorReport());
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnGetProfileSuccess(GetPlayerProfileResult obj)
|
|
|
|
{
|
|
|
|
Debug.Log("Player profile fetching successful");
|
|
|
|
PlayFabManager.Instance.playFabUserDataManager.myProfile = obj.PlayerProfile;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnLoginFailure(PlayFabError error)
|
|
|
|
{
|
|
|
|
Debug.LogError("Login failed: " + error.GenerateErrorReport());
|
|
|
|
}
|
|
|
|
}
|