
Statistik pemain
Catat penghitung dan rekor pribadi setiap pemain.
SDK dan REST
Integrasikan Unity, Godot, atau Unreal, atau gunakan antarmuka REST.
Dasbor proyek
Konfigurasikan setiap fitur dan kelola data terkininya di proyek Anda.
Integrasi Cepat
Statistik pemain
Video segera hadir
Laporkan ronde, eliminasi, dan rekor dalam satu batch sesi, dengan aturan jumlah, maksimum, minimum, atau nilai terakhir.
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);Contoh ini memakai Unity SDK (C#) dan REST API. Godot dan Unreal memiliki panggilan yang sama di SDK masing-masing: lihat quickstart
Pertanyaan yang Sering Diajukan
Siap untuk Integrasi?
Mulai membangun dengan horizOn hari ini. Paket gratis tersedia.
