プレイヤー統計

プレイヤー統計

各プレイヤーのカウンターと自己ベストを記録します。

無料で始める

プレイヤー統計

各プレイヤーのカウンターと自己ベストを記録します。

SDK と REST

Unity、Godot、Unreal と統合するか、REST インターフェースを使えます。

プロジェクトのダッシュボード

プロジェクトで各機能を設定し、現在のデータを管理できます。

クイック統合

クイック統合

プレイヤー統計
動画は近日公開

ラウンド数、撃破数、最高記録をセッション単位でまとめて報告し、合計・最大・最小・最新値で集計します。

クイック統合
Unity (C#)
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);

これらの例では、Unity SDK(C#)とREST APIを使っています。GodotとUnrealでも、それぞれのSDKで同じ呼び出しができます: クイックスタートを参照

よくある質問

よくある質問

統合の準備はできましたか?

horizOn で今日からゲームバックエンドを構築しましょう。無料プラン付き。