Idées et fonctionnalités de jeu

Votre prochaine fonctionnalité

Statistiques joueur

Suivez manches, éliminations et records par lot de session, avec somme, maximum, minimum ou dernière valeur.

SDK : developSession de joueur requise
Unity
Illustration de Statistiques joueur
Votre résultat visible

Votre jeu envoie une session complète en un lot et affiche les compteurs et périodes actuels.

Vidéo à venir

Cette étape n’a pas encore de vidéo. Le guide et la demande MCP sont utilisables.

Statistiques joueur

Préparer le même projet

  1. Sélectionnez dans le tableau de bord le même projet que dans la configuration de votre jeu.

    Statistiques joueur →
  2. Créez ou réutilisez ces entrées de test dans le formulaire du tableau de bord. Ce sont des exemples, pas les données actuelles.

    Définitions statistiques
    kills: mode=sum, reset=none; best_score: mode=max, reset=none

    Somme additionne chaque rapport. Maximum et minimum conservent la valeur extrême ; dernière la remplace. Maximum, minimum et dernière sont initialisés au premier rapport. Les valeurs sont des entiers signés dans la plage sûre.

  3. Enregistrez, rechargez et vérifiez les entrées avant l’exemple. Conservez les autres définitions.

Intégrer cette fonctionnalité

Vous pouvez consulter le guide. Son exécution nécessite une clé de projet active. Préparer le projet

SDK installé, configuration du projet importée et joueur connecté.

Cet exemple du SDK utilise develop. Vérifiez que les API nécessaires existent dans votre SDK installé.

Terminez la connexion du démarrage rapide avec le joueur choisi. Appelez RunReviewedAction() via un bouton ou une action de scène explicite. Ouvrir le fichier seul n’envoie aucune requête.

C#
Assets/Scripts/StatisticsDemo.cs
Appel 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// Lisez d’abord un état, puis conservez le même identifiant et le lot
9// initial lors des tentatives. Un résultat expiré ou incertain nécessite
10// une vérification, jamais un nouvel identifiant automatique.
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}
Ouvrir l’exemple SDK complet ↗

Testez votre nouvelle fonctionnalité.

Votre jeu envoie une session complète en un lot et affiche les compteurs et périodes actuels.

Sélectionnez dans le tableau de bord le même projet que dans la configuration de votre jeu.

Points de terminaison
  • GET/statistics
  • GET/statistics/definitions
  • POST/statistics
Tous les points de terminaison dans la référence API
Notre suggestion pour la suite

Donnez un meilleur score à chaque partie.

Enregistrez le score après une partie et montrez qui est en tête. Continuez avec votre connexion et la session du joueur.