Spielideen & Features

Euer nächstes Feature

Items

Einzelne Ausrüstung mit Eigenschaften, Katalogregeln und übersichtlichem Spielerinventar.

SDK: developSpielersession erforderlich
Unity
Illustration für Items
Euer sichtbares Ergebnis

Nach dem Speichern enthält der Katalog starter_sword. Nach dem geprüften Beispielkauf enthält das aktuelle Inventar dessen eindeutige instanceId.

Video folgt

Für diesen Schritt fehlt noch das Video. Die Anleitung und der MCP-Auftrag sind bereits nutzbar.

Items

Dasselbe Projekt vorbereiten

  1. Wählt im Dashboard dasselbe Projekt wie in eurer Spielkonfiguration.

    Items →
  2. Erstellt diese Testeinträge im Dashboard-Formular oder verwendet passende vorhandene Einträge. Die Werte sind Beispieldaten, kein aktueller Projektstand.

    Schlüssel
    starter_sword
    Name
    Quickstart Sword
    Typ
    equipment
    Seltenheit
    common
    Aktiv
    true
    Basiseigenschaften
    {"damage":5}
    Eigenschaftsregeln
    []

    Items sind Einzelstücke mit eigener ID und Eigenschaften. Zählbare Ressourcen gehören in Spielerwerte, reine Kosmetik ins Spielerprofil.

    Bereitet coins mit der Spielerwerte-Anleitung vor. Speichert danach das aktive Angebot starter-sword: Kosten 10 coins, Item-Belohnung 1 starter_sword.

    Spielerwerte →
  3. Speichert die Einträge, ladet sie neu und prüft sie vor dem Beispiel. Erhaltet andere vorhandene Definitionen.

Feature einbauen

Ihr könnt die Anleitung vorab ansehen. Zum Ausführen braucht ihr einen aktiven Projekt-Key. Projekt vorbereiten

SDK installiert, Projekt-Konfiguration importiert und Spieler angemeldet.

Dieses SDK-Beispiel nutzt develop. Prüft, ob die nötigen APIs in eurem installierten SDK verfügbar sind.

Verbindet zuerst den vorgesehenen Spieler über den Schnellstart. Ruft ReadCatalogPage(), ReadInventory() ausdrücklich über einen Button oder eine Szenenaktion auf. Allein das Öffnen der Datei sendet keine Anfrage.

C#
Assets/Scripts/ItemsDemo.cs
horizOn-Aufruf
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.
Vollständiges SDK-Beispiel öffnen ↗

Das gespeicherte Item nutzen

Importiert das offizielle Beispiel samt Hilfsdateien. Prüft das Angebot und führt die folgende Reihenfolge mit dem bestehenden Spieler aus. Wartet auf jeden Schritt und bestätigt den Kauf einmal. Erhaltet nach unklarer Antwort die Originalanfrage.

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

Testet euer neues Feature.

Nach dem Speichern enthält der Katalog starter_sword. Nach dem geprüften Beispielkauf enthält das aktuelle Inventar dessen eindeutige instanceId.

Wählt im Dashboard dasselbe Projekt wie in eurer Spielkonfiguration.

Endpunkte
  • GET/items
  • GET/items/catalog
  • POST/items/adjust
  • POST/items/equip
  • POST/items/discard
Alle Endpunkte in der API-Referenz
Unser Vorschlag für den nächsten Schritt

Gebt jeder Runde einen Highscore.

Speichert den Score nach dem Spiel und zeigt, wer vorne liegt. Eure Verbindung und Spielersession nutzt ihr weiter.