Ideas y funciones para tu juego

Tu próxima función

Grupos

Gremios, clanes y equipos con roles para el proyecto seleccionado.

SDK: developRequiere una sesión de jugador
Unity
Ilustración de Grupos
El resultado visible

Tras un tiempo de espera o conflicto, conserva la intención original y lee el estado actual. Nunca reintentes automáticamente con otra revisión.

Vídeo próximamente

Este paso aún no tiene vídeo. La guía y la solicitud MCP ya se pueden utilizar.

Grupos

Preparar el mismo proyecto

  1. Selecciona en el panel el mismo proyecto que en la configuración de tu juego.

    Grupos →
  2. La primera petición no necesita otra definición. Un resultado vacío es válido mientras no existan datos del juego.

    Los grupos se crean y gestionan en el juego.

    Este primer ejemplo lee datos. No crea grupos, partidas ni objetos. Una lista vacía es una primera respuesta válida.

Implementa esta función

Puedes consultar la guía. Para ejecutarla necesitas una clave de proyecto activa. Preparar el proyecto

SDK instalado, configuración del proyecto importada y jugador conectado.

Este ejemplo del SDK usa develop. Comprueba si las API necesarias están disponibles en el SDK instalado.

Completad la conexión de inicio rápido con el jugador elegido. Llamad a ReadMyGroups() mediante un botón o acción de escena explícita. Abrir el archivo no envía peticiones.

C#
Assets/Scripts/GroupsDemo.cs
Llamada a horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3​
4public sealed class GroupsDemo : MonoBehaviour
5{
6 // Initialize/connect once and restore the existing player in the Quickstart first.
7 // Invoke from a player action; no background refresh or membership mutation.
8 public async void ReadMyGroups()
9 {
10 var user = UserManager.Instance.CurrentUser;
11 if (user == null || !user.IsValid()) return;
12 var result = await GroupsManager.Instance.GetGroups(user.UserId);
13 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
14 Debug.Log($"Player revision: {result.Data.revision}");
15 foreach (var group in result.Data.groups)
16 Debug.Log($"Group {group.id}: {group.myRole}, revision {group.revision}");
17 // result.Data.limits contains all current limits; existing groups may exceed them.
18 // GetMembers(userId, groupId, afterUserId: null, limit: 1) reads one page.
19 // Keep its revision and nextAfterUserId. A changed revision requires a restart.
20 // Pending createdAt may be absent/null; it does not mean the Unix epoch.
21 }
22}
23// For writes use the SDK GroupsExample and its durable GroupsSampleStore.
24// Preserve the exact project/player, body, expected revision and pending requestId.
25// Unknown create: read/reconcile explicitly; never create with a replacement revision.
Abrir el ejemplo completo del SDK ↗

Prueba tu nueva función.

Tras un tiempo de espera o conflicto, conserva la intención original y lee el estado actual. Nunca reintentes automáticamente con otra revisión.

Selecciona en el panel el mismo proyecto que en la configuración de tu juego.

Endpoints de la API
  • GET/groups
  • GET/groups/{groupId}
  • GET/groups/{groupId}/members
  • GET/groups/{groupId}/pending
  • POST/groups
  • PUT/groups/{groupId}
  • POST/groups/{groupId}/join
  • POST/groups/{groupId}/request
  • POST/groups/{groupId}/invite
  • POST/groups/{groupId}/accept-invite
  • POST/groups/{groupId}/decline-invite
  • POST/groups/{groupId}/cancel-invite
  • POST/groups/{groupId}/accept-request
  • POST/groups/{groupId}/decline-request
  • POST/groups/{groupId}/cancel-request
  • POST/groups/{groupId}/leave
  • POST/groups/{groupId}/remove
  • POST/groups/{groupId}/role
  • POST/groups/{groupId}/transfer
  • POST/groups/{groupId}/delete
Todos los endpoints en la referencia de la API
Nuestra sugerencia para el siguiente paso

Dale una puntuación máxima a cada partida.

Guarda la puntuación después de una partida y muestra quién va primero. Sigue usando tu conexión y la sesión del jugador.