Idee e funzionalità per il gioco

La tua prossima funzionalità

Statistiche giocatore

Registra round, eliminazioni e record in un lotto di sessione, con somma, massimo, minimo o ultimo valore.

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

Il gioco invia una sessione completa in un lotto e mostra i contatori e i periodi attuali.

Video in arrivo

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

Statistiche giocatore

Preparare lo stesso progetto

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

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

    Definizioni statistiche
    kills: mode=sum, reset=none; best_score: mode=max, reset=none

    Somma aggiunge ogni segnalazione. Massimo e minimo conservano il valore estremo; ultimo lo sostituisce. Massimo, minimo e ultimo iniziano dalla prima segnalazione. Sono ammessi interi con segno nell’intervallo sicuro.

  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 RunReviewedAction() tramite un pulsante o un’azione esplicita della scena. Aprire il file non invia richieste.

C#
Assets/Scripts/StatisticsDemo.cs
Chiamata horizOn
1using PM.horizOn.Cloud.Objects.Network.Requests;
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// Leggi prima uno stato, poi conserva ID operazione e lotto originale nei
9// tentativi successivi. Un risultato scaduto o incerto richiede una
10// verifica, mai un nuovo ID automatico.
11// This explicit action reports the shown persisted batch.
12public sealed class StatisticsDemo : MonoBehaviour
13{
14 public async void RunReviewedAction()
15 {
16 var sessionUser = UserManager.Instance.CurrentUser;
17 if (sessionUser == null || !sessionUser.IsValid()) return;
18 var manager = StatisticsManager.Instance;
19 var snapshot = await manager.GetStatistics();
20 if (snapshot == null) { Debug.LogWarning(manager.LastErrorCode); return; }
21 string pendingKey = "horizOn_statistics_pending_" + snapshot.userId;
22 var pending = PlayerPrefs.HasKey(pendingKey)
23 ? JsonUtility.FromJson<UpdateStatisticsRequest>(PlayerPrefs.GetString(pendingKey))
24 : new UpdateStatisticsRequest {
25 userId = snapshot.userId, operationId = manager.CreateOperationId(),
26 updates = new[] { new StatisticUpdate("kills", 3), new StatisticUpdate("best_score", 250) }
27 };
28 string originalJson = JsonUtility.ToJson(pending);
29 PlayerPrefs.SetString(pendingKey, originalJson);
30 PlayerPrefs.Save();
31 var result = await manager.UpdateStatistics(pending.updates, pending.operationId);
32 if (result == null) {
33 // Keep the saved ID and batch. Reconcile OPERATION_EXPIRED before a new logical report.
34 Debug.LogWarning(manager.LastErrorCode);
35 return;
36 }
37 // A late success for O1 must never acknowledge a newer pending O2.
38 if (PlayerPrefs.GetString(pendingKey, null) == originalJson) {
39 PlayerPrefs.DeleteKey(pendingKey);
40 PlayerPrefs.Save();
41 }
42 foreach (var counter in result.values) Debug.Log(counter.key + "=" + counter.value);
43 }
44}
Aprire l’esempio SDK completo ↗

Prova la tua nuova funzionalità.

Il gioco invia una sessione completa in un lotto e mostra i contatori e i periodi attuali.

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

Endpoint dell'API
  • GET/statistics
  • GET/statistics/definitions
  • POST/statistics
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.