Ide dan fitur game

Fitur berikutnya

Objek bersama

Bagikan data game yang tidak ditafsirkan melalui kebijakan akses eksplisit, kueri berindeks, dan revisi asli.

SDK: developMemerlukan sesi pemain
Unity
Ilustrasi Objek bersama
Hasil yang terlihat

Baca penggunaan pemilik sebelum membuat objek. Pembuatan menggunakan revisi penggunaan tersebut; pembaruan dan penghapusan menggunakan revisi asli objek. Pemilik, grup, dan waktu kedaluwarsa yang ditetapkan saat pembuatan tetap sama.

Video akan tersedia

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

Objek bersama

Siapkan proyek yang sama

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

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

    Kunci
    bases
    Kebijakan baca
    all
    Kebijakan tulis
    owner
    Posisi kisi
    true
    Byte maksimum per objek
    1024
    Objek maksimum per pemilik
    1

    Kunci tetap dicadangkan. Setelah penggunaan pertama, kebijakan, skema pencarian, TTL, dan posisi tidak dapat diubah. Pengarsipan memblokir penulisan baru; pembacaan dan penghapusan tetap tersedia.

    Contoh pertama membaca data. Tidak membuat grup, pertandingan, atau objek. Daftar kosong adalah respons pertama yang sah.

  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 ReadWorldMap() dari tombol atau tindakan adegan yang eksplisit. Membuka berkas saja tidak mengirim permintaan.

C#
Assets/Scripts/SharedObjectsDemo.cs
Panggilan horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3using PM.horizOn.Cloud.Objects.Network.Responses;
4​
5public sealed class SharedObjectsDemo : MonoBehaviour
6{
7 // Initialize/connect and restore the existing player in the Quickstart first.
8 // Wire an explicit player action; do not add this read to a startup/poll loop.
9 public async void ReadWorldMap()
10 {
11 var user = UserManager.Instance.CurrentUser;
12 if (user == null || !user.IsValid()) return;
13 var result = await SharedObjectsManager.Instance.QueryObjects(user.UserId, "bases", new SharedQuery {
14 mode = SharedQueryMode.Rectangle,
15 minX = -10, maxX = 10, minY = -10, maxY = 10, limit = 20
16 });
17 if (!result.IsSuccess) {
18 Debug.LogWarning(result.ErrorCode);
19 return;
20 }
21 foreach (var item in result.Data.objects) {
22 byte[] bytes = item.data; // Opaque game bytes; validate your game's own format.
23 Debug.Log($"Object {item.id}: {bytes.Length} bytes");
24 }
25 // Respect result.Data.pollAfterSeconds; no automatic poll or next-page loop.
26 // Keep exact dataBase64 and typed search metadata unchanged on metadata edits.
27 // Persist original target, bytes and If-Match revision before a single mutation.
28 // Unknown CREATE: explicit GetRecoveryUsage/QueryRecoveryObjects; never resend.
29 // Generic/defense/ranked VA starts share one start/submit lease; do not replace a pending run.
30 // Trusted validation and durable ordinary Inbox delivery belong to the game backend.
31 }
32}
Buka contoh SDK lengkap ↗

Peta dunia

Simpan markas pemilik sebagai byte yang tidak ditafsirkan. Kueri persegi panjang kisi berkoordinat bilangan bulat yang telah dikonfigurasi secara eksplisit; perbarui dengan revisi asli objek. Posisi adalah indeks kueri dan tidak memvalidasi aturan game.

PvP asinkron

Pilih lawan melalui kueri bilangan bulat yang terbatas dan tidak seragam. Muat byte pertahanannya dan validasi permainan dengan eksekusi Validated Actions yang dikelola server. Hanya backend tepercaya yang menentukan hasil dan mengirim pemberitahuan Inbox yang tidak dapat diubah.

Gunakan sesi pemain yang sesuai, niat penulisan asli yang disimpan secara persisten, serta pembacaan eksplisit dan terbatas. Validasi hasil yang tepercaya dan pengiriman Inbox harus dilakukan di backend game; Account Keys tidak boleh disertakan dalam build game.

Uji fitur barumu.

Baca penggunaan pemilik sebelum membuat objek. Pembuatan menggunakan revisi penggunaan tersebut; pembaruan dan penghapusan menggunakan revisi asli objek. Pemilik, grup, dan waktu kedaluwarsa yang ditetapkan saat pembuatan tetap sama.

Pilih proyek yang sama di dasbor dan konfigurasi game.

Titik akhir
  • GET/shared-objects/collections
  • GET/shared-objects/{collection}/usage
  • GET/shared-objects/{collection}/objects/{objectId}
  • POST/shared-objects/{collection}/query
  • POST/shared-objects/{collection}/objects
  • PUT/shared-objects/{collection}/objects/{objectId}
  • DELETE/shared-objects/{collection}/objects/{objectId}
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.