أفكار وميزات للعبة

ميزتك التالية

إدارة المحادثة

رسائل محفوظة واشتراكات صريحة وإشراف محدود.

SDK: فرع developتتطلب جلسة لاعب
Unity
رسم توضيحي لميزة إدارة المحادثة
النتيجة المرئية

جلستان قائمتان: افتح قناة المشروع وأرسل مرة واقرأ وأبلغ عن رسالة محفوظة. المباشر يتطلب صداقة والمجموعة عضوية نشطة.

الفيديو قادم لاحقًا

لا يوجد فيديو لهذه الخطوة بعد. الدليل وطلب MCP متاحان للاستخدام.

إدارة المحادثة

جهّزوا المشروع نفسه

  1. اختر في لوحة التحكم المشروع نفسه الموجود في إعداد لعبتك.

    إدارة المحادثة →
  2. لا يحتاج الطلب الأول إلى تعريف إضافي. النتيجة الفارغة صالحة ما دامت بيانات اللعبة المطابقة غير موجودة.

    جلستان قائمتان: افتح قناة المشروع وأرسل مرة واقرأ وأبلغ عن رسالة محفوظة. المباشر يتطلب صداقة والمجموعة عضوية نشطة.

    يعيد PHP simpleServer الحالة 501 NOT_SUPPORTED لكل مسارات Chat.

أضف هذه الميزة

يمكنك الاطلاع على الدليل. يتطلب التنفيذ مفتاح مشروع نشطًا. تجهيز المشروع

SDK مُثبّت وإعداد المشروع مُستورد واللاعب مسجّل الدخول.

يستخدم مثال SDK هذا فرع develop. تحقّق من وجود واجهات API المطلوبة في SDK المثبّت.

أكملوا اتصال البدء السريع باللاعب المقصود. استدعوا ReadChannelSnapshot(channelId) بزر أو إجراء مشهد صريح. فتح الملف وحده لا يرسل طلباً.

C#
Assets/Scripts/ChatDemo.cs
استدعاء 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}
فتح مثال SDK الكامل ↗

لاعبان وقناة واحدة

جلستان قائمتان: افتح قناة المشروع وأرسل مرة واقرأ وأبلغ عن رسالة محفوظة. المباشر يتطلب صداقة والمجموعة عضوية نشطة.

الخلاصة تتطلب تأكيد الاشتراك ثم حدث/resync وSync واحد وعلامة تغيير. لا استطلاع أو بديل منفصل؛ سحب الإذن يخفي النص.

احفظ الأصل الدقيق للمشروع واللاعب قبل الإرسال. المضيف والجلسة حدود للطلب فقط. لا تستبدل معرفاً أو وقتاً أو نصاً أو مراجعة غير مؤكدة.

404 للعملية ليس دليل فشل. احتفظ بالأصل بعد المهلة أو OPERATION_EXPIRED وطابق فقط الإيصال الموافق.

كرر معرفات البلاغ والسبب الأصليين. removed نجاح للإعادة؛ REPORT_EXPIRED لا ينشئ بلاغاً جديداً.

يعيد PHP simpleServer الحالة 501 NOT_SUPPORTED لكل مسارات Chat.

اختبر ميزتك الجديدة.

جلستان قائمتان: افتح قناة المشروع وأرسل مرة واقرأ وأبلغ عن رسالة محفوظة. المباشر يتطلب صداقة والمجموعة عضوية نشطة.

اختر في لوحة التحكم المشروع نفسه الموجود في إعداد لعبتك.

نقاط النهاية
  • 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
كل نقاط النهاية في مرجع API
اقتراحنا لخطوتك التالية

أضف رقمًا قياسيًا لكل جولة.

احفظ النتيجة بعد الجولة وأظهر المتصدر. واصل استخدام اتصالك وجلسة اللاعب.