Autenticación en Unity
Este tutorial te guiará en la configuración de la autenticación Unity en un proyecto Unity. La autenticación Unity te permite administrar y autenticar usuarios en tus juegos mediante el kit de herramientas de identidad de Unity. Cubriremos los pasos necesarios para configurar la autenticación, integrarla en tu proyecto e implementar la funcionalidad de inicio de sesión.
Prerrequisitos
- Unity Hub y editor Unity instalados.
- Unity proyecto con Unity Servicios habilitados.
- Unity cuenta y un ID de proyecto activo.
Paso 1: Configurar la autenticación de Unity en el panel de control de Unity
- Inicie sesión en el UnityPanel de control.
- Seleccione su proyecto o cree uno nuevo.
- Vaya a Autenticación en la sección "Services".
- Habilite la autenticación haciendo clic en el botón Activar.
- Configure los ajustes de autenticación según sea necesario, como atributos de usuario, métodos de inicio de sesión y controles de acceso.
Paso 2: Instalar el paquete de autenticación Unity
Para utilizar la autenticación Unity en su proyecto, debe instalar el paquete apropiado.
- Abra su proyecto Unity.
- Vaya a Ventana > Administrador de paquetes.
- Busque Autenticación en el Administrador de paquetes.
- Haga clic en Instalar para agregar el paquete de autenticación a su proyecto.
Paso 3: Configurar el script de inicialización
Para usar la autenticación en tu juego, debes inicializar los servicios Unity y la autenticación en tiempo de ejecución. Agrega el siguiente código en un script de C# (por ejemplo, AuthenticationManager.cs
) y adjúntalo a un GameObject en tu escena.
using UnityEngine;
using Unity.Services.Core;
using Unity.Services.Authentication;
using System.Threading.Tasks;
public class AuthenticationManager : MonoBehaviour
{
async void Start()
{
await InitializeUnityServicesAsync();
}
private async Task InitializeUnityServicesAsync()
{
try
{
await UnityServices.InitializeAsync();
Debug.Log("Unity Services initialized successfully.");
if (!AuthenticationService.Instance.IsSignedIn)
{
await SignInAnonymously();
}
}
catch (System.Exception e)
{
Debug.LogError($"Error initializing Unity Services: {e.Message}");
}
}
private async Task SignInAnonymously()
{
try
{
await AuthenticationService.Instance.SignInAnonymouslyAsync();
Debug.Log("Signed in anonymously.");
}
catch (System.Exception e)
{
Debug.LogError($"Error signing in anonymously: {e.Message}");
}
}
}
Este script inicializa los servicios Unity cuando se inicia el juego e inicia la sesión del usuario de forma anónima si aún no lo ha hecho.
Paso 4: Implementar el inicio de sesión con autenticación Unity
También puedes proporcionar opciones para métodos de inicio de sesión específicos, como el correo electrónico o el inicio de sesión con Google, según los requisitos de tu juego. A continuación, se muestra un ejemplo de cómo puedes implementar el inicio de sesión con la autenticación Unity.
Ejemplo: Iniciar sesión con correo electrónico y contraseña
using UnityEngine;
using Unity.Services.Authentication;
using System.Threading.Tasks;
public class AuthenticationManager : MonoBehaviour
{
async void Start()
{
await InitializeUnityServicesAsync();
}
private async Task InitializeUnityServicesAsync()
{
try
{
await UnityServices.InitializeAsync();
Debug.Log("Unity Services initialized successfully.");
}
catch (System.Exception e)
{
Debug.LogError($"Error initializing Unity Services: {e.Message}");
}
}
public async Task SignInWithEmailAsync(string email, string password)
{
try
{
await AuthenticationService.Instance.SignInWithEmailAndPasswordAsync(email, password);
Debug.Log("Signed in with email successfully.");
}
catch (System.Exception e)
{
Debug.LogError($"Error signing in with email: {e.Message}");
}
}
}
Para llamar a este método, cree un formulario de UI en Unity para que los usuarios ingresen su correo electrónico y contraseña, y luego llame a SignInWithEmailAsync
desde el evento onClick de un botón de UI.
Paso 5: Cerrar sesión
Para la gestión de usuarios, es posible que también quieras implementar una función de cierre de sesión. A continuación, te indicamos cómo hacerlo:
public void SignOut()
{
AuthenticationService.Instance.SignOut();
Debug.Log("Signed out successfully.");
}
Llama a este método siempre que quieras cerrar la sesión del usuario de tu juego.
Conclusión
Explicamos cómo configurar la autenticación Unity en tu proyecto Unity, incluida la inicialización, el inicio de sesión anónimo, el inicio de sesión por correo electrónico y la funcionalidad de cierre de sesión. Con la autenticación Unity, puedes administrar a tus usuarios de manera más efectiva y mejorar la seguridad en tus juegos. Para configuraciones más avanzadas, como proveedores de inicio de sesión personalizados o vincular múltiples métodos de autenticación, consulta la documentación oficial de Unity.