Oyun fikirleri ve özellikleri

Sıradaki özelliğin

Oyuncu istatistikleri

Turları, öldürmeleri ve rekorları tek oturum paketiyle; toplam, en yüksek, en düşük veya son değer kuralıyla bildirin.

SDK: developOyuncu oturumu gerekli
Unity
Oyuncu istatistikleri görseli
Görünür sonuç

Oyun tüm oturumu tek paketle bildirir ve güncel sayaçları ve dönemleri gösterir.

Video yakında

Bu adımın videosu henüz yok. Rehber ve MCP isteği kullanıma hazır.

Oyuncu istatistikleri

Aynı projeyi hazırlayın

  1. Panelde oyun yapılandırmandaki projeyle aynı projeyi seç.

    Oyuncu istatistikleri →
  2. Bu test kayıtlarını panel formunda oluşturun veya mevcut olanları kullanın. Bunlar örnek değerlerdir, güncel proje verileri değildir.

    İstatistik tanımları
    kills: mode=sum, reset=none; best_score: mode=max, reset=none

    Toplam her bildirimi ekler. En yüksek ve en düşük uç değeri korur; son değer değiştirir. En yüksek, en düşük ve son değer ilk bildirimle başlar. Değerler güvenli aralıktaki işaretli tam sayılardır.

  3. Örneği çalıştırmadan önce kaydedin, yeniden yükleyin ve doğrulayın. Diğer tanımları koruyun.

Bu özelliği ekle

Kılavuzu inceleyebilirsin. Çalıştırmak için etkin bir proje anahtarı gerekir. Projeyi hazırla

SDK kurulu, proje yapılandırması içe aktarılmış ve oyuncu oturum açmış olmalı.

Bu SDK örneği develop kullanır. Gerekli API'lerin kurulu SDK sürümünde bulunduğunu kontrol et.

Hızlı başlangıç bağlantısını ilgili oyuncuyla tamamlayın. RunReviewedAction() çağrısını açık bir düğme veya sahne eyleminden yapın. Dosyayı açmak tek başına istek göndermez.

C#
Assets/Scripts/StatisticsDemo.cs
horizOn çağrısı
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// Önce bir durum okuyun, ardından yeniden denemelerde aynı işlem kimliğini
9// ve özgün paketi koruyun. Süresi dolmuş veya belirsiz sonuç doğrulama
10// gerektirir; otomatik yeni kimlik kullanılmaz.
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}
Tam SDK örneğini aç ↗

Yeni özelliğini test et.

Oyun tüm oturumu tek paketle bildirir ve güncel sayaçları ve dönemleri gösterir.

Panelde oyun yapılandırmandaki projeyle aynı projeyi seç.

Uç noktalar
  • GET/statistics
  • GET/statistics/definitions
  • POST/statistics
API referansındaki tüm uç noktalar
Sıradaki adım için önerimiz

Her tura bir yüksek puan ekle.

Turdan sonra puanı kaydet ve kimin önde olduğunu göster. Bağlantını ve oyuncu oturumunu kullanmaya devam et.