Spelideeën en functies

Je volgende functie

Prestaties

Elke sleutel ontgrendelt eenmaal per speler. Handmatig vertrouwt het spel; statistiekdrempels worden in dezelfde betrokken rapporttransactie beoordeeld.

SDK: developSpelerssessie vereist
Unity
Illustratie van Prestaties
Je zichtbare resultaat

Na de actie is first_steps ontgrendeld voor dezelfde speler. Dezelfde sleutel geeft geen tweede prestatie of beloning.

Video volgt

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

Prestaties

Hetzelfde project voorbereiden

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

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

    Sleutel
    first_steps
    Naam
    First steps
    Ontgrendelregel
    manual
    Actief
    true
    Verborgen tot ontgrendeling
    false
    Geen beloning
    []

    Elke sleutel ontgrendelt eenmaal per speler. Handmatig vertrouwt het spel; statistiekdrempels worden in dezelfde betrokken rapporttransactie beoordeeld.

  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/AchievementsDemo.cs
horizOn-aanroep
1using System.Linq;
2using UnityEngine;
3using PM.horizOn.Cloud.Core;
4using PM.horizOn.Cloud.Manager;
5​
6// Existing SDK/project configuration and authenticated player session required.
7// Call RunReviewedAction explicitly after reviewing this example and its data.
8// Beloningen worden direct bij het ontgrendelen bijgeschreven. Als dat
9// mislukt, wordt de volledige actie teruggedraaid.
10// This explicit action unlocks the shown configured achievement key.
11public sealed class AchievementsDemo : MonoBehaviour
12{
13 public async void RunReviewedAction()
14 {
15 var sessionUser = UserManager.Instance.CurrentUser;
16 if (sessionUser == null || !sessionUser.IsValid()) return;
17 var userId = UserManager.Instance.CurrentUser.UserId;
18 var manager = AchievementsManager.Instance;
19 var loaded = await manager.GetAchievements(userId);
20 if (!loaded.IsSuccess) { Debug.LogWarning(loaded.ErrorCode); return; }
21 foreach (var progress in loaded.Data.progress)
22 Debug.Log(progress.key + ": " + progress.rewardState);
23​
24 // Configure a manual first_steps definition, then call this on the matching game action.
25 var unlocked = await manager.Unlock(userId, "first_steps");
26 if (!unlocked.IsSuccess) { Debug.LogWarning(unlocked.ErrorCode); return; }
27 // Repeat the same key after timeout; never create a replacement reward identity.
28 // rewardState is complete, unlockedAt is null, and deliveryResults is empty.
29 // Values were credited atomically. Read PlayerValues again when showing the balance.
30 // No Inbox claim or local value addition. Refresh achievements after statistics updates.
31 }
32}
Volledig SDK-voorbeeld openen ↗

Test je nieuwe functie.

Na de actie is first_steps ontgrendeld voor dezelfde speler. Dezelfde sleutel geeft geen tweede prestatie of beloning.

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

Eindpunten
  • GET/achievements
  • POST/achievements/unlock
  • POST/achievements/rewards/deliver
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.