Ide dan fitur game

Fitur berikutnya

Statistik pemain

Laporkan ronde, eliminasi, dan rekor dalam satu batch sesi, dengan aturan jumlah, maksimum, minimum, atau nilai terakhir.

SDK: developMemerlukan sesi pemain
Unity
Ilustrasi Statistik pemain
Hasil yang terlihat

Game melaporkan sesi lengkap dalam satu batch dan menampilkan penghitung serta periode saat ini.

Video akan tersedia

Langkah ini belum memiliki video. Panduan dan permintaan MCP sudah dapat digunakan.

Statistik pemain

Siapkan proyek yang sama

  1. Pilih proyek yang sama di dasbor dan konfigurasi game.

    Statistik pemain →
  2. Buat atau gunakan kembali entri uji ini pada formulir dasbor. Nilai ini adalah contoh, bukan data proyek saat ini.

    Definisi statistik
    kills: mode=sum, reset=none; best_score: mode=max, reset=none

    Jumlah menambahkan setiap laporan. Maksimum dan minimum mempertahankan nilai ekstrem; terakhir menggantinya. Maksimum, minimum, dan terakhir dimulai dari laporan pertama. Nilai adalah bilangan bulat bertanda dalam rentang aman.

  3. Simpan, muat ulang, dan periksa entri sebelum menjalankan contoh. Pertahankan definisi lain.

Tambahkan fitur ini

Kamu dapat membaca panduan. Untuk menjalankannya, diperlukan kunci proyek aktif. Siapkan proyek

SDK terpasang, konfigurasi proyek diimpor, dan pemain sudah masuk.

Contoh SDK ini menggunakan develop. Periksa apakah API yang diperlukan tersedia di SDK yang terpasang.

Selesaikan koneksi mulai cepat dengan pemain yang dipilih. Panggil RunReviewedAction() dari tombol atau tindakan adegan yang eksplisit. Membuka berkas saja tidak mengirim permintaan.

C#
Assets/Scripts/StatisticsDemo.cs
Panggilan horizOn
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// Baca snapshot dahulu, lalu pertahankan ID operasi dan batch asli saat
9// mencoba ulang. Hasil kedaluwarsa atau tidak pasti perlu rekonsiliasi,
10// bukan ID baru otomatis.
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}
Buka contoh SDK lengkap ↗

Uji fitur barumu.

Game melaporkan sesi lengkap dalam satu batch dan menampilkan penghitung serta periode saat ini.

Pilih proyek yang sama di dasbor dan konfigurasi game.

Titik akhir
  • GET/statistics
  • GET/statistics/definitions
  • POST/statistics
Semua titik akhir di referensi API
Saran kami untuk langkah berikutnya

Berikan skor tertinggi untuk setiap ronde.

Simpan skor setelah ronde dan tampilkan siapa yang unggul. Tetap gunakan koneksi dan sesi pemainmu.