Idee e funzionalità per il gioco

La tua prossima funzionalità

Conversazione

Messaggi conservati, abbonamenti espliciti e moderazione limitata.

SDK: developSessione del giocatore richiesta
Unity
Illustrazione di Conversazione
Il risultato visibile

Due sessioni esistenti: aprire il canale progetto, inviare una volta, leggere e segnalare un messaggio conservato. Amicizia per chat diretta, appartenenza attiva per gruppo.

Video in arrivo

Questo passaggio non ha ancora un video. La guida e la richiesta MCP sono già utilizzabili.

Conversazione

Preparare lo stesso progetto

  1. Seleziona nella dashboard lo stesso progetto presente nella configurazione del gioco.

    Conversazione →
  2. La prima richiesta non richiede altre definizioni. Un risultato vuoto è valido finché mancano i dati del gioco.

    Due sessioni esistenti: aprire il canale progetto, inviare una volta, leggere e segnalare un messaggio conservato. Amicizia per chat diretta, appartenenza attiva per gruppo.

    PHP simpleServer restituisce 501 NOT_SUPPORTED per tutte le rotte Chat.

Integra questa funzionalità

Puoi consultare la guida. Per eseguirla serve una chiave di progetto attiva. Prepara il progetto

SDK installato, configurazione del progetto importata e giocatore connesso.

Questo esempio del SDK usa develop. Verifica che le API necessarie siano disponibili nel SDK installato.

Completate la connessione rapida con il giocatore scelto. Chiamate ReadChannelSnapshot(channelId) tramite un pulsante o un’azione esplicita della scena. Aprire il file non invia richieste.

C#
Assets/Scripts/ChatDemo.cs
Chiamata horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3​
4// Existing imported SDK and authenticated player session required.
5// Call these methods explicitly from a player action; nothing runs on startup.
6public sealed class ChatDemo : MonoBehaviour
7{
8 public async void ReadChannelSnapshot(string channelId)
9 {
10 var user = UserManager.Instance.CurrentUser;
11 if (user == null || !user.IsValid()) return;
12 var result = await ChatManager.Instance.SyncChannel(user.UserId, channelId);
13 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
14 Debug.Log("Snapshot epoch: " + result.Data.channel.epoch);
15 foreach (var message in result.Data.messages) Debug.Log(message.text);
16 // This is the small authorized server window, not the full device history.
17 // A raw snapshot does not authorize or populate a managed realtime feed.
18 // WatchChannel waits for confirmed subscription; revocation hides the feed.
19 }
20​
21 public void ReadDeviceHistory(string channelId, string before = null)
22 {
23 var user = UserManager.Instance.CurrentUser;
24 if (user == null || !user.IsValid()) return;
25 var page = ChatManager.Instance.ReadLocalHistory(channelId, before, 50);
26 if (!page.IsSuccess) { Debug.LogWarning(page.ErrorCode); return; }
27 foreach (var message in page.Data.messages) Debug.Log(message.text);
28 // Continue only on an explicit action using page.Data.nextCursor.
29 // Local delivered history can outlive the small current server window.
30 // For send/report, import the SDK ChatExample and preserve its original
31 // operationId, issuedAt, channel and text before one explicit send.
32 // An uncertain outcome never permits a fresh identity or implicit retry.
33 }
34}
Aprire l’esempio SDK completo ↗

Due giocatori, un canale

Due sessioni esistenti: aprire il canale progetto, inviare una volta, leggere e segnalare un messaggio conservato. Amicizia per chat diretta, appartenenza attiva per gruppo.

Flusso gestito dopo conferma abbonamento: evento/resync, un Sync e indicatore modifiche. Nessun polling o ripiego disconnesso; revoca nasconde il testo.

Salva l’originale esatto per progetto/giocatore prima dell’invio. Host/sessione delimitano le richieste. Non sostituire ID, data, testo o revisione incerti.

Un 404 dell’operazione non prova un fallimento. Conserva l’originale dopo timeout o OPERATION_EXPIRED; riconcilia solo con la ricevuta corrispondente.

Ripeti ID e motivo originali. removed conferma la ripetizione; REPORT_EXPIRED non crea altre segnalazioni.

PHP simpleServer restituisce 501 NOT_SUPPORTED per tutte le rotte Chat.

Prova la tua nuova funzionalità.

Due sessioni esistenti: aprire il canale progetto, inviare una volta, leggere e segnalare un messaggio conservato. Amicizia per chat diretta, appartenenza attiva per gruppo.

Seleziona nella dashboard lo stesso progetto presente nella configurazione del gioco.

Endpoint dell'API
  • GET/chat/limits
  • POST/chat/channels/open
  • POST/chat/channels/{channelId}/sync
  • POST/chat/channels/{channelId}/messages
  • GET/chat/operations/{operationId}
  • POST/chat/channels/{channelId}/messages/{messageId}/report
Tutti gli endpoint nel riferimento API
Il nostro suggerimento per il prossimo passo

Dai un record a ogni partita.

Salva il punteggio dopo una partita e mostra chi è in testa. Continua a usare la connessione e la sessione del giocatore.