Blockchain. Aprende sobre esta tecnología de manera sencilla.
30 diciembre, 2019
La importancia del QA para cumplir con el compromiso de calidad
13 febrero, 2020
PlayFab-Parte2

En esta ocasión, (si quieres acceder a la primera parte de este artículo clica aquí), veremos en primer lugar cómo realizar una llamada a la API de PlayFab para poder empezar a trabajar con esta herramienta. Después configuraremos

Primera llamada a la API de PlayFab

Crearemos un nuevo script desde el editor de Unity al que nombraremos como “PlayFabLogin.cs“. 

Unity-script

Abriremos el script creado y sustituiremos el contenido actual por las siguientes líneas de código: 

 

using PlayFab; 

using PlayFab.ClientModels; 

using UnityEngine; 

 public class PlayFabLogin : MonoBehaviour 

{ 

    public void Start() 

    { 

        //Note: Setting title Id here can be skipped if you have set the value in Editor Extensions already. 

        if (string.IsNullOrEmpty(PlayFabSettings.TitleId)) 

        { 

            PlayFabSettings.TitleId = “144”;  

        } 

        var request = new LoginWithCustomIDRequest CustomId = “GettingStartedGuide“, CreateAccount = true }; 

        PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccessOnLoginFailure); 

    } 

     private void OnLoginSuccess(LoginResult result) 

    { 

        Debug.Log(“Congratulations, you made your first successful API call!”); 

    } 

     private void OnLoginFailure(PlayFabError error) 

    { 

        Debug.LogWarning(“Something went wrong with your first API call.  :(“); 

        Debug.LogError(“Here’s some debug information:”); 

        Debug.LogError(error.GenerateErrorReport()); 

    } 

} 

Tendremos que cambiar la línea que indica “PlayFabSettings.TitleId” por nuestro ID del juego que encontraremos en la web  

Para que nos funcione dentro de nuestra escena, tendremos que crear en la jerarquía un nuevo GameObject vacío que nombraremos como “Manager” al que le asignaremos este nuevo script creado. 

Al darle a Play desde nuestro editor, la consola debería reportar un mensaje como este: 

Congratulations, you made your first successful API call!” 

Con esto habremos llamado perfectamente al API, lo que nos permitirá seguir avanzando para implementar nuevas funcionalidades a nuestra aplicación. 

Cómo hacer un login mediante dirección de Email

Hasta ahora lo que permitíamos era un acceso directo a la aplicación creando un usuario anónimo; el cual no dejaba prácticamente ninguna información en nuestro Game Manager en la web. 

Para que esto cambie, usaremos un método mediante el cual los usuarios se tendrán que registrar con su email para poder acceder a la aplicación. 

El código que usaremos será el siguiente que explicamos a continuación: 

using PlayFab; 

using PlayFab.ClientModels; 

using UnityEngine; 

using Unity; 

 

public class PlayFabLogin : MonoBehaviour 

{ 

    private string userEmail; 

    private string userPassword; 

    private string userName; 

    public GameObject loginPanel; 

 

    public void Start() 

    { 

        //Note: Setting title Id here can be skipped if you have set the value in Editor Extensions already. 

        if (string.IsNullOrEmpty(PlayFabSettings.TitleId)) 

        { 

            PlayFabSettings.TitleId = “7F468”; // Please change this value to your own titleId from PlayFab Game Manager 

        } 

        //var request = new LoginWithCustomIDRequest CustomId = “GettingStartedGuide“, CreateAccount = true }; 

        //PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccessOnLoginFailure); 

        if (PlayerPrefs.HasKey(“EMAIL”)) 

        { 

            userEmail = PlayerPrefs.GetString(“EMAIL”); 

            userPassword = PlayerPrefs.GetString(“PASSWORD”); 

            userName = PlayerPrefs.GetString(“NAME”); 

            var request = new LoginWithEmailAddressRequest { Email = userEmail, Password = userPassword }; 

            PlayFabClientAPI.LoginWithEmailAddress(request, OnLoginSuccessOnLoginFailure); 

        } 

    } 

 

    private void OnRegisterSuccess(RegisterPlayFabUserResult result) 

    { 

        Debug.Log(“Enhorabuena, te registraste correctamente”); 

        PlayerPrefs.SetString(“EMAIL”, userEmail); 

        PlayerPrefs.SetString(“PASSWORD”, userPassword); 

        PlayerPrefs.SetString(“NAME”, userName); 

        loginPanel.SetActive(false); 

    } 

 

    private void OnRegisterFailure(PlayFabError error) 

    { 

        Debug.Log(error.GenerateErrorReport()); 

    } 

 

    private void OnLoginSuccess(LoginResult result) 

    { 

        Debug.Log(“Congratulations, you made your first successful API call!”); 

        PlayerPrefs.SetString(“EMAIL”, userEmail); 

        PlayerPrefs.SetString(“PASSWORD”, userPassword); 

        PlayerPrefs.SetString(“NAME”, userName); 

        loginPanel.SetActive(false); 

    } 

 

    private void OnLoginFailure(PlayFabError error) 

    { 

        var registerRequest = new RegisterPlayFabUserRequest { Email = userEmail, Password = userPassword, Username = userName }; 

        PlayFabClientAPI.RegisterPlayFabUser(registerRequestOnRegisterSuccessOnRegisterFailure); 

    } 

 

    public void GetUserEmail(string emailIn) 

    { 

        userEmail = emailIn; 

    } 

 

    public void GetUserPassword(string passwordIn) 

    { 

        userPassword = passwordIn; 

    } 

 

    public void GetUserName(string nameIn) 

    { 

        userName = nameIn; 

    } 

 

    public void OnClickLogin() 

    { 

        var request = new LoginWithEmailAddressRequest { Email = userEmail, Password = userPassword }; 

        PlayFabClientAPI.LoginWithEmailAddress(request, OnLoginSuccessOnLoginFailure); 

    } 

} 

Para entender lo que estamos haciendo explicamos el código anterior: 

  • Generamos 4 variables sobre el registro 
  • OnRegisterSuccess. En caso de que se haya registrado correctamente usará los inputs (Name, Email y Password) que se hayan escrito desde la aplicación para guardarlos en nuestra base de datos, y desactivará la pestaña de login para poder seguir con normalidad dentro de la aplicación. Cualquier cambio que se haga desde ahora quedará registrado para poder verlo en el dashboard de PlayFab. 
  • OnRegisterFailure. Esto sucederá cuando por cualquier motivo no se haya podido registrar correctamente. Mostrará en consola el error que está ocurriendo. 
  • OnLoginSuccess. En primer lugar, hemos puesto un condicional que preguntará si existe en la base de datos la key “EMAIL”, en caso de que sea así el usuario entrará directamente con el email que pusiste anteriormente. 
  • OnLoginFailureEn este caso lo que se propone es generar el apartado de registro nada más entrar 

 

De vuelta a nuestro editor deberemos crear la pestaña para el registro. Crearemos un “panel”, el cual contendrá tres “input field” para escribir el mail, la contraseña y el nombre, y un botón para enviar los campos. 

En cada “input field” deberemos seleccionar el tipo de contenido que es: 

 

También deberemos introducir lo que queremos que ocurra cuando se introduzca el parámetro de texto (String) para ello realizaremos los siguientes pasos. 

  • En el inspector de los inputfields bajaremos hasta llegar a on value changed para pulsar sobre el icono de +.  
  • Arrastraremos nuestro Manager (GameObject con el script PlayFabLogin.cs) donde pone None (object) 
  • En No Function, seleccionaremos PlayFab Login y luego GetUser 

Para el botón haremos lo mismo, sin embargo, esta vez será en On click y la función OnClickLogin que hicimos anteriormente. (Permitirá dejar registrado los datos que se hayan escrito). 

En el Manager (GameObject con el script PlayFabLogin.cs) arrastraremos el panel que hemos creado para que se desactive en el momento que queremos. 

Para comprobar que todo ha salido bien, desde el panel de control de PlayFab en la web tendremos una pestaña de Players”. En él aparecerá nuestro usuario registrado con todos los datos que ha enviado. 

Además, cuando accedamos de nuevo a la aplicación no hará falta que pongamos otra vez nuestras credenciales ya que nos reconoce. Para poder probar de nuevo la pantalla de registro basta con eliminar al usuario desde el panel de control. 


También podéis seguirnos en Twitter, LinkedIn y Facebook.


 

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

 

 

Compártelo: Share on FacebookTweet about this on TwitterShare on LinkedInPin on Pinterest

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NEWSLETTER