Configure su proveedor OIDC en el Builder siguiendo las instrucciones enlazadas arriba. Agregue su(s) client ID(s) al objeto scriptable SequenceConfig en su carpeta Resources.
Una vez que el usuario inicia sesión correctamente, se devuelve un idToken mediante un deep link a la aplicación.
Para habilitar el deep linking, debemos registrar un esquema de URL personalizado para nuestra aplicación. Hay algunos requisitos específicos de cada plataforma para configurarlo.
Para que el inicio de sesión con redes sociales funcione en el editor, necesitará desplegar un servidor simple en su máquina local. Proporcionamos una implementación de ejemplo aquí.Para desplegar este servidor de ejemplo, siga estos pasos.
Debería ver Server listening on port 8080 impreso en su terminal o consola de comandos
Si decide desplegar el servidor en otro lugar (otro puerto, un servidor público, etc.), deberá cambiar el valor de OpenIdAuthenticator.RedirectUrl en su código antes de iniciar el proceso de inicio de sesión
OpenIdAuthenticator.InjectRedirectUrl("the url for your deployed server");
Nota: debe usar un cliente web para su proveedor de inicio de sesión con redes sociales con http://localhost:8080/ (o la URL de su servidor) en la lista blanca como URL de redirección bajo Standalone Platforms en SequenceConfig
Al configurar las credenciales de su cliente web para inicio de sesión con redes sociales con Google (por ejemplo) para plataformas de escritorio (y Android), debe incluir en la lista blanca https://api.sequence.app/oauth/callback como “Authorized redirect URIs”
En la ventana del Proyecto, navegue a Assets > Plugins > Android.
a) Nota: en versiones de Unity 2021.2 en adelante, esta ruta no existe por defecto. Por favor, diríjase a Edit > Project Settings > Player y, en Android Publishing Settings, habilite Custom Main Manifest en la sección Build. Consulte https://docs.unity3d.com/Manual/deep-linking-android.html para más información.
2. Si aún no existe, cree un archivo nuevo y llámelo AndroidManifest.xml.
3. Pegue el siguiente XML en el archivo o, si ya tiene uno, agregue las nuevas claves de este XML al suyo.
4. Asegúrese de reemplazar ‘sdk-powered-by-sequence’ por el esquema de URL que configuró en SequenceConfig
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" > <application> <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="sdk-powered-by-sequence"/> <!-- substitute 'sdk-powered-by-sequence' with the Url Scheme you set in `SequenceConfig` --> </intent-filter> </activity> </application> </manifest>
b) Nota: Las versiones de Unity 2022 anteriores a 2022.3.7f1 y las de 2023 anteriores a 2023.1.7f1, 2023.2.0b3 o 2023.3.0a1 contienen un error con el deep-linking en Android. Por favor, use este XML en su lugar.
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application> <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="sdk-powered-by-sequence"/> <!-- substitute 'sdk-powered-by-sequence' with the Url Scheme you set in `SequenceConfig` --> </intent-filter> </activity> </application></manifest>
El esquema de URL en su AndroidManifest y SequenceConfig debe estar todo en minúsculas.
Si está trabajando con Unity 6, puede que necesite reemplazar UnityPlayerActivity en su AndroidManifest por UnityPlayerGameActivity. También podría ser necesario cambiar su android:theme; hemos comprobado que “@style/BaseUnityGameActivityTheme” funciona bien en nuestras pruebas.
El inicio de sesión con redes sociales en plataformas web utiliza React mediante el WebGLTemplate que se encuentra en WebGLTemplates/SequenceReact. Esto ha sido validado en WebGL y WebGPU. Para aprender cómo habilitar WebGPU en Unity, consulte este post en el foro.Tenga en cuenta que Google es el único proveedor OIDC actualmente compatible en plataformas web mediante nuestro WebGLTemplate SequenceReact por defecto; sin embargo, puede ampliarlo para agregar soporte a otros proveedores OIDC compatibles con nuestra API.
Arrastre esta carpeta WebGLTemplates a Assets (o simplemente arrastre la plantilla SequenceReact a su carpeta existente de WebGLTemplates si ya tiene una) para que la ruta sea Assets/WebGLTemplates/SequenceReact.
Es muy importante que sus WebGLTemplates estén en Assets/WebGLTemplates. Al igual que la carpeta Plugins, si no están exactamente en esa ubicación, ¡Unity no los detectará!
Una vez que haya agregado la plantilla SequenceReact, reinicie el editor para que Unity la reconozca.Desde aquí, puede seleccionar la plantilla en Project Settings > Player Settings > Resolution and Presentation.
Al compilar su aplicación WebGL, si utiliza algún Compression Format (por ejemplo, Gzip o Brotli), se recomienda habilitar Decompression Fallback en Player Settings > Publishing Settings. Aprenda más sobre el despliegue de WebGL aquí: https://docs.unity3d.com/Manual/webgl-deploying.html
Al configurar las credenciales de inicio de sesión con redes sociales con Google (por ejemplo), debe incluir en la lista blanca http://localhost:4444 y la URL final donde se alojará su juego como “Authorized Javascript origins”
¡No olvide suscribirse al evento SequenceWallet.OnWalletCreated para recibir su wallet recién creada!