Ideas y funciones para tu juego

Tu próxima función

Objetos

Equipo único con propiedades, reglas de catálogo e inventario del proyecto seleccionado.

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

Al guardar, el catálogo contiene starter_sword. Tras la compra revisada, el inventario actual contiene su instanceId único.

Vídeo próximamente

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

Objetos

Preparar el mismo proyecto

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

    Objetos →
  2. Cread o reutilizad estas entradas de prueba en el formulario del panel. Son valores de ejemplo, no datos actuales.

    Clave
    starter_sword
    Nombre
    Quickstart Sword
    Tipo
    equipment
    Rareza
    common
    Activo
    true
    Propiedades base
    {"damage":5}
    Reglas de propiedades
    []

    Los objetos tienen identidad y propiedades propias. Los recursos contables pertenecen a Valores del jugador y los cosméticos visuales al Perfil del jugador.

    Preparad coins con la guía de valores. Guardad la oferta activa starter-sword: coste de 10 coins y recompensa de 1 starter_sword.

    Valores del jugador →
  3. Guardad, recargad y verificad las entradas antes del ejemplo. Conservad las demás definiciones.

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 ReadCatalogPage(), ReadInventory() mediante un botón o acción de escena explícita. Abrir el archivo no envía peticiones.

C#
Assets/Scripts/ItemsDemo.cs
Llamada a horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3​
4public sealed class ItemsDemo : MonoBehaviour
5{
6 // Initialize/connect and restore the existing player in the Quickstart first.
7 public async void ReadInventory()
8 {
9 var user = UserManager.Instance.CurrentUser;
10 if (user == null || !user.IsValid()) return;
11 var result = await ItemsManager.Instance.GetInventory(user.UserId);
12 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
13 foreach (var item in result.Data.instances)
14 Debug.Log($"{item.instanceId}: {item.itemKey}");
15 // Keep result.Data.revision for a separately reviewed mutation.
16 }
17​
18 // Wire a separate explicit action; no automatic catalog traversal or poll.
19 public async void ReadCatalogPage()
20 {
21 var user = UserManager.Instance.CurrentUser;
22 if (user == null || !user.IsValid()) return;
23 var result = await ItemsManager.Instance.GetCatalog(user.UserId, limit: 1);
24 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
25 Debug.Log($"Catalog revision: {result.Data.revision}");
26 // Explicit Next keeps result.Data.revision and nextAfterKey unchanged.
27 }
28}
29// SDK ItemsExample/ItemsSampleStore persist original instanceId/body/revision before writes.
30// Keep the original Player Values operationId for purchase recovery.
31// The initial success may include item references; retained replay may return empty applied/items.
32// Read the current inventory separately. Never reconstruct earlier item references.
33// A failed refresh never authorizes a replacement purchase or a local item grant.
Abrir el ejemplo completo del SDK ↗

Usar el objeto guardado

Importad el ejemplo oficial y sus archivos auxiliares. Revisad la oferta y ejecutad la secuencia con el jugador actual. Esperad cada paso y confirmad la compra una vez. Conservad la petición original si la respuesta es incierta.

ItemsExample: projectId → ReadOneCatalogPage() → ReviewOffers() → SavePurchaseAfterReview("starter-sword") → RefreshInventory()

Prueba tu nueva función.

Al guardar, el catálogo contiene starter_sword. Tras la compra revisada, el inventario actual contiene su instanceId único.

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

Endpoints de la API
  • GET/items
  • GET/items/catalog
  • POST/items/adjust
  • POST/items/equip
  • POST/items/discard
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.