Spelideeën en functies

Je volgende functie

Spelerwaarden

Valuta, tellers en energie die de server beheert. Stel per project saldi, aanbiedingen en gecontroleerde wijzigingen in.

SDK: developSpelerssessie vereist
Unity
Illustratie van Spelerwaarden
Je zichtbare resultaat

Je spel toont de ingestelde saldi en aanbiedingen. Aankopen geven de huidige spelerstatus terug.

Video volgt

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

Spelerwaarden

Hetzelfde project voorbereiden

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

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

    Waarden
    coins: initialBalance=100, maxBalance=1000000; energy: initialBalance=10, maxBalance=100
    Directe wijzigingen toestaan
    false
    Aanbiedingen
    energy-pack: costs=[{"key":"coins","amount":20}], rewards=[{"key":"energy","amount":5}]

    Beginsaldi worden eenmaal per waardesleutel toegekend. Directe wijzigingen staan standaard uit. Validated Actions behoudt de grenzen per spelronde; dag- en saldolimieten komen uit deze definities. Een lege optionele limiet betekent onbeperkt.

  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 RunReviewedAction() expliciet aan via een knop of scèneactie. Alleen het bestand openen verstuurt geen verzoek.

C#
Assets/Scripts/PlayerValuesDemo.cs
horizOn-aanroep
1using UnityEngine;
2using PM.horizOn.Cloud.Core;
3using PM.horizOn.Cloud.Manager;
4​
5// Existing SDK/project configuration and authenticated player session required.
6// Call RunReviewedAction explicitly after reviewing this example and its data.
7public sealed class PlayerValuesDemo : MonoBehaviour
8{
9 public async void RunReviewedAction()
10 {
11 var sessionUser = UserManager.Instance.CurrentUser;
12 if (sessionUser == null || !sessionUser.IsValid()) return;
13 var userId = UserManager.Instance.CurrentUser.UserId;
14 var current = await PlayerValuesManager.Instance.GetState(userId);
15 if (!current.IsSuccess) { Debug.LogWarning(current.ErrorCode); return; }
16 foreach (var value in current.State.values) Debug.Log(value.key + "=" + value.balance);
17 // This minimal first call reads authoritative balances, never a local reward delta.
18 // For purchases and original retry, import PlayerValuesExample and its
19 // PendingPlayerValuesPurchase helper from the official SDK samples.
20 // Persist the complete original user/offer/operationId before one send.
21 // An uncertain or expired original must never become a fresh purchase ID.
22 }
23}
Volledig SDK-voorbeeld openen ↗

Test je nieuwe functie.

Je spel toont de ingestelde saldi en aanbiedingen. Aankopen geven de huidige spelerstatus terug.

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

Eindpunten
  • GET/player-values
  • GET/player-values/offers
  • POST/player-values/purchase
  • POST/player-values/adjust
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.