Oyun fikirleri ve özellikleri

Sıradaki özelliğin

Paylaşılan nesneler

Yorumlanmayan oyun verilerini açık erişim ilkeleri, indeksli sorgular ve özgün revizyonlarla paylaşın.

SDK: developOyuncu oturumu gerekli
Unity
Paylaşılan nesneler görseli
Görünür sonuç

Oluşturmadan önce sahip kullanımını okuyun. Oluşturma bu kullanımın revizyonunu, güncelleme ve silme ise nesnenin özgün revizyonunu kullanır. Sahip, grup ve oluşturma sırasında belirlenen sona erme zamanı değişmez.

Video yakında

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

Paylaşılan nesneler

Aynı projeyi hazırlayın

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

    Paylaşılan nesneler →
  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.

    Anahtar
    bases
    Okuma ilkesi
    all
    Yazma ilkesi
    owner
    Izgara konumu
    true
    Nesne başına en fazla bayt
    1024
    Sahip başına en fazla nesne
    1

    Anahtarlar ayrılmış olarak kalır. İlk kullanımdan sonra ilkeler, arama şeması, TTL ve konum değiştirilemez. Arşivleme yeni yazmaları engeller; okuma ve silme kullanılabilir durumda kalır.

    İlk örnek veri okur. Grup, maç veya nesne oluşturmaz. Boş liste geçerli bir ilk yanıttı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. ReadWorldMap() ç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/SharedObjectsDemo.cs
horizOn çağrısı
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}
Tam SDK örneğini aç ↗

Dünya haritası

Sahiplerin üslerini yorumlanmayan baytlar olarak saklayın. Yapılandırılmış tam sayı koordinatlı ızgara dikdörtgenini açıkça sorgulayın; nesnenin özgün revizyonuyla güncelleyin. Konum bir sorgu indeksidir ve oyun kurallarını doğrulamaz.

Asenkron PvP

Sınırlı, eşit dağılımlı olmayan bir tam sayı sorgusuyla rakip seçin. Savunma baytlarını yükleyin ve oyunu sunucunun yönettiği bir Validated Actions çalıştırmasıyla doğrulayın. Yalnızca güvenilir bir backend sonuca karar verir ve değiştirilemez bir Inbox bildirimi gönderir.

Eşleşen oyuncu oturumlarını, kalıcı olarak saklanan özgün yazma niyetini ve açıkça istenen sınırlı okumaları kullanın. Güvenilir sonuç doğrulama ve Inbox teslimi oyun backend’inizde yapılmalıdır; Account Keys asla oyun derlemelerinde yer almamalıdır.

Yeni özelliğini test et.

Oluşturmadan önce sahip kullanımını okuyun. Oluşturma bu kullanımın revizyonunu, güncelleme ve silme ise nesnenin özgün revizyonunu kullanır. Sahip, grup ve oluşturma sırasında belirlenen sona erme zamanı değişmez.

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

Uç noktalar
  • 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}
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.