Idee e funzionalità per il gioco

La tua prossima funzionalità

Oggetti

Equipaggiamento unico con proprietà, regole di catalogo e inventario del progetto selezionato.

SDK: developSessione del giocatore richiesta
Unity
Illustrazione di Oggetti
Il risultato visibile

Dopo il salvataggio, il catalogo contiene starter_sword. Dopo l’acquisto verificato, l’inventario attuale contiene il suo instanceId univoco.

Video in arrivo

Questo passaggio non ha ancora un video. La guida e la richiesta MCP sono già utilizzabili.

Oggetti

Preparare lo stesso progetto

  1. Seleziona nella dashboard lo stesso progetto presente nella configurazione del gioco.

    Oggetti →
  2. Create o riutilizzate queste voci di prova nel modulo del pannello. Sono valori di esempio, non dati attuali.

    Chiave
    starter_sword
    Nome
    Quickstart Sword
    Tipo
    equipment
    Rarità
    common
    Attivo
    true
    Proprietà di base
    {"damage":5}
    Regole delle proprietà
    []

    Gli oggetti hanno identità e proprietà individuali. Le risorse contabili restano nei Valori giocatore; gli elementi solo cosmetici restano nel Profilo giocatore.

    Preparate coins con la guida ai valori. Salvate l’offerta attiva starter-sword: costo 10 coins, premio 1 starter_sword.

    Valori del giocatore →
  3. Salvate, ricaricate e verificate le voci prima dell’esempio. Conservate le altre definizioni.

Integra questa funzionalità

Puoi consultare la guida. Per eseguirla serve una chiave di progetto attiva. Prepara il progetto

SDK installato, configurazione del progetto importata e giocatore connesso.

Questo esempio del SDK usa develop. Verifica che le API necessarie siano disponibili nel SDK installato.

Completate la connessione rapida con il giocatore scelto. Chiamate ReadCatalogPage(), ReadInventory() tramite un pulsante o un’azione esplicita della scena. Aprire il file non invia richieste.

C#
Assets/Scripts/ItemsDemo.cs
Chiamata 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.
Aprire l’esempio SDK completo ↗

Usare l’oggetto salvato

Importate l’esempio ufficiale e i relativi file di supporto. Verificate l’offerta ed eseguite la sequenza con il giocatore attuale. Attendete ogni passaggio e confermate l’acquisto una sola volta. Conservate la richiesta originale dopo una risposta incerta.

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

Prova la tua nuova funzionalità.

Dopo il salvataggio, il catalogo contiene starter_sword. Dopo l’acquisto verificato, l’inventario attuale contiene il suo instanceId univoco.

Seleziona nella dashboard lo stesso progetto presente nella configurazione del gioco.

Endpoint dell'API
  • GET/items
  • GET/items/catalog
  • POST/items/adjust
  • POST/items/equip
  • POST/items/discard
Tutti gli endpoint nel riferimento API
Il nostro suggerimento per il prossimo passo

Dai un record a ogni partita.

Salva il punteggio dopo una partita e mostra chi è in testa. Continua a usare la connessione e la sessione del giocatore.