using PlayFab; using PlayFab.ClientModels; using System; using System.Collections; using System.Collections.Generic; using UnityEditor.PackageManager; using UnityEngine; public class PlayFabAuth : MonoBehaviour { private const string STORED_LOGIN_KEY = "playfab_login"; private void Start() { if (HasStoredLogin()) { LoginWithStoredLogin(); } else { SilentPlatformLogin(); } } private bool HasStoredLogin() { //check for stored login and set equal to playerprefs, or empty default value var storedLogin = PlayerPrefs.GetString(STORED_LOGIN_KEY, defaultValue: ""); //returns true if StoreLogin is not blank return storedLogin != ""; } private void LoginWithStoredLogin() { } private void SilentPlatformLogin() { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: iOSLogin(); break; case RuntimePlatform.Android: AndroidLogin(); break; default: DesktopLogin(); break; } } private void DesktopLogin() { var request = new LoginWithCustomIDRequest() { TitleId = PlayFabSettings.TitleId, CustomId = SystemInfo.deviceUniqueIdentifier, CreateAccount = true, InfoRequestParameters = new GetPlayerCombinedInfoRequestParams() }; PlayFabClientAPI.LoginWithCustomID(request, LoginSuccess, LoginFailure); } private void LoginFailure(PlayFabError error) { Debug.LogError(error.GenerateErrorReport()); } private void LoginSuccess(LoginResult result) { Debug.Log(result.PlayFabId); } private void AndroidLogin() { var up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = up.GetStatic("currentActivity"); var contentResolver = currentActivity.Call("getContentResolver"); var secure = new AndroidJavaClass("android.provider.Settings$Secure"); var deviceId = secure.CallStatic("getString", contentResolver, "android_id"); var request = new LoginWithAndroidDeviceIDRequest { TitleId = PlayFabSettings.TitleId, AndroidDevice = SystemInfo.deviceModel, OS = SystemInfo.operatingSystem, AndroidDeviceId = deviceId, CreateAccount = true, InfoRequestParameters = new GetPlayerCombinedInfoRequestParams() }; PlayFabClientAPI.LoginWithAndroidDeviceID(request, LoginSuccess, LoginFailure); } private void iOSLogin() { var request = new LoginWithIOSDeviceIDRequest { TitleId = PlayFabSettings.TitleId, DeviceModel = SystemInfo.deviceModel, OS = SystemInfo.operatingSystem, DeviceId = SystemInfo.deviceUniqueIdentifier, CreateAccount = true, InfoRequestParameters = new GetPlayerCombinedInfoRequestParams() }; PlayFabClientAPI.LoginWithIOSDeviceID(request, LoginSuccess, LoginFailure); } }