
Oyuncu istatistikleri
Her oyuncunun sayaçlarını ve kişisel rekorlarını kaydedin.
SDK’lar ve REST
Unity, Godot veya Unreal ile entegre edin ya da REST arayüzünü kullanın.
Proje panosu
Her özelliği yapılandırın ve güncel verilerini projenizde yönetin.
Hızlı Entegrasyon
Oyuncu istatistikleri
Video yakında
Turları, öldürmeleri ve rekorları tek oturum paketiyle; toplam, en yüksek, en düşük veya son değer kuralıyla bildirin.
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);Bu örnekler Unity SDK'sını (C#) ve REST API'yi kullanır. Godot ve Unreal'de aynı çağrılar kendi SDK'larında bulunur: hızlı başlangıca bakın
Sıkça Sorulan Sorular
Entegrasyona Hazır mısınız?
horizOn ile bugün geliştirmeye başlayın. Ücretsiz paket dahil.
