
Spelerstatistieken
Registreer tellers en persoonlijke records per speler.
SDK’s en REST
Integreer Unity, Godot of Unreal of gebruik de REST-interface.
Projectdashboard
Stel elke functie in en beheer de actuele gegevens in je project.
Snelle Integratie
Spelerstatistieken
Video volgt binnenkort
Meld rondes, kills en records in één sessiebatch, met som, maximum, minimum of de laatste waarde.
using UnityEngine;
using PM.horizOn.Cloud.Manager;
using PM.horizOn.Cloud.Objects.Network.Requests;
var manager = StatisticsManager.Instance;
var snapshot = await manager.GetStatistics();
if (snapshot == null) { Debug.LogWarning(manager.LastErrorCode); return; }
string pendingKey = "horizOn_statistics_pending_" + snapshot.userId;
var pending = PlayerPrefs.HasKey(pendingKey)
? JsonUtility.FromJson<UpdateStatisticsRequest>(PlayerPrefs.GetString(pendingKey))
: new UpdateStatisticsRequest {
userId = snapshot.userId, operationId = manager.CreateOperationId(),
updates = new[] { new StatisticUpdate("kills", 3), new StatisticUpdate("best_score", 250) }
};
string originalJson = JsonUtility.ToJson(pending);
PlayerPrefs.SetString(pendingKey, originalJson);
PlayerPrefs.Save();
var result = await manager.UpdateStatistics(pending.updates, pending.operationId);
if (result == null) {
// Keep the saved ID and batch. Reconcile OPERATION_EXPIRED before a new logical report.
Debug.LogWarning(manager.LastErrorCode);
return;
}
// A late success for O1 must never acknowledge a newer pending O2.
if (PlayerPrefs.GetString(pendingKey, null) == originalJson) {
PlayerPrefs.DeleteKey(pendingKey);
PlayerPrefs.Save();
}
foreach (var counter in result.values) Debug.Log(counter.key + "=" + counter.value);Deze voorbeelden gebruiken de Unity SDK (C#) en de REST API. Godot en Unreal hebben dezelfde aanroepen in hun eigen SDK's: zie de quickstart
Veelgestelde Vragen
Klaar om te integreren?
Begin vandaag nog met horizOn. Free Tier inbegrepen.
