Spelideeën en functies

Je volgende functie

Items

Unieke uitrusting met eigenschappen, catalogusregels en spelersinventaris voor het gekozen project.

SDK: developSpelerssessie vereist
Unity
Illustratie van Items
Je zichtbare resultaat

Na opslaan bevat de catalogus starter_sword. Na de gecontroleerde voorbeeldaankoop bevat de huidige inventaris de unieke instanceId.

Video volgt

Voor deze stap is nog geen video. De handleiding en MCP-opdracht zijn al bruikbaar.

Items

Hetzelfde project voorbereiden

  1. Kies in het dashboard hetzelfde project als in de configuratie van je spel.

    Items →
  2. Maak of hergebruik deze testgegevens in het dashboardformulier. Dit zijn voorbeeldwaarden, geen huidige projectgegevens.

    Sleutel
    starter_sword
    Naam
    Quickstart Sword
    Type
    equipment
    Zeldzaamheid
    common
    Actief
    true
    Basiseigenschappen
    {"damage":5}
    Eigenschapsregels
    []

    Items hebben een eigen identiteit en eigenschappen. Telbare middelen blijven bij Spelerwaarden; uitsluitend visuele cosmetica blijven bij het Spelerprofiel.

    Bereid coins voor met de gids voor spelerswaarden. Sla de actieve aanbieding starter-sword op: kosten 10 coins, itembeloning 1 starter_sword.

    Spelerwaarden →
  3. Sla de gegevens op, laad ze opnieuw en controleer ze vóór het voorbeeld. Behoud andere definities.

Bouw deze functie

Je kunt de handleiding bekijken. Voor uitvoering heb je een actieve projectsleutel nodig. Project voorbereiden

SDK geïnstalleerd, projectconfiguratie geïmporteerd en speler aangemeld.

Dit SDK-voorbeeld gebruikt develop. Controleer of de benodigde API's in je geïnstalleerde SDK bestaan.

Voltooi de Quickstart-verbinding met de bedoelde speler. Roep ReadCatalogPage(), ReadInventory() expliciet aan via een knop of scèneactie. Alleen het bestand openen verstuurt geen verzoek.

C#
Assets/Scripts/ItemsDemo.cs
horizOn-aanroep
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.
Volledig SDK-voorbeeld openen ↗

Het opgeslagen item gebruiken

Importeer het officiële voorbeeld en zijn hulpbestanden. Controleer de aanbieding en voer de volgorde uit met de huidige speler. Wacht op elke stap en bevestig de aankoop eenmaal. Bewaar het oorspronkelijke verzoek na een onzeker antwoord.

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

Test je nieuwe functie.

Na opslaan bevat de catalogus starter_sword. Na de gecontroleerde voorbeeldaankoop bevat de huidige inventaris de unieke instanceId.

Kies in het dashboard hetzelfde project als in de configuratie van je spel.

Eindpunten
  • GET/items
  • GET/items/catalog
  • POST/items/adjust
  • POST/items/equip
  • POST/items/discard
Alle eindpunten in de API-referentie
Onze suggestie voor je volgende stap

Geef elke ronde een topscore.

Sla de score na een ronde op en laat zien wie vooropstaat. Blijf je verbinding en de sessie van de speler gebruiken.