Idées et fonctionnalités de jeu

Votre prochaine fonctionnalité

Discussion

Messages conservés, abonnements explicites et modération bornée.

SDK : developSession de joueur requise
Unity
Illustration de Discussion
Votre résultat visible

Deux sessions existantes : ouvrir le canal projet, envoyer une fois, lire et signaler un message conservé. Amitié requise en direct, appartenance active en groupe.

Vidéo à venir

Cette étape n’a pas encore de vidéo. Le guide et la demande MCP sont utilisables.

Discussion

Préparer le même projet

  1. Sélectionnez dans le tableau de bord le même projet que dans la configuration de votre jeu.

    Discussion →
  2. Aucune définition supplémentaire pour la première requête. Un résultat vide est valide tant que les données du jeu manquent.

    Deux sessions existantes : ouvrir le canal projet, envoyer une fois, lire et signaler un message conservé. Amitié requise en direct, appartenance active en groupe.

    PHP simpleServer renvoie 501 NOT_SUPPORTED pour toutes les routes Chat.

Intégrer cette fonctionnalité

Vous pouvez consulter le guide. Son exécution nécessite une clé de projet active. Préparer le projet

SDK installé, configuration du projet importée et joueur connecté.

Cet exemple du SDK utilise develop. Vérifiez que les API nécessaires existent dans votre SDK installé.

Terminez la connexion du démarrage rapide avec le joueur choisi. Appelez ReadChannelSnapshot(channelId) via un bouton ou une action de scène explicite. Ouvrir le fichier seul n’envoie aucune requête.

C#
Assets/Scripts/ChatDemo.cs
Appel 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}
Ouvrir l’exemple SDK complet ↗

Deux joueurs, un canal

Deux sessions existantes : ouvrir le canal projet, envoyer une fois, lire et signaler un message conservé. Amitié requise en direct, appartenance active en groupe.

Flux géré uniquement après confirmation d’abonnement : événement/resync, un Sync et indicateur de modification. Sans sondage ni repli déconnecté; révocation masque le texte.

Enregistrez l’original exact par projet/joueur avant envoi. Hôte/session bornent les requêtes. Ne remplacez jamais identifiant, date, texte ou révision incertains.

Un 404 d’opération ne prouve aucun échec. Gardez l’original après délai ou OPERATION_EXPIRED; exigez son reçu correspondant.

Rejouez les identifiants et motif originaux. removed confirme le rejeu; REPORT_EXPIRED ne crée aucun autre signalement.

PHP simpleServer renvoie 501 NOT_SUPPORTED pour toutes les routes Chat.

Testez votre nouvelle fonctionnalité.

Deux sessions existantes : ouvrir le canal projet, envoyer une fois, lire et signaler un message conservé. Amitié requise en direct, appartenance active en groupe.

Sélectionnez dans le tableau de bord le même projet que dans la configuration de votre jeu.

Points de terminaison
  • 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
Tous les points de terminaison dans la référence API
Notre suggestion pour la suite

Donnez un meilleur score à chaque partie.

Enregistrez le score après une partie et montrez qui est en tête. Continuez avec votre connexion et la session du joueur.