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

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

المجموعات

نقابات وعشائر وفرق بأدوار للمشروع المحدد.

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

بعد انتهاء المهلة أو التعارض احتفظ بالإجراء الأصلي واقرأ الحالة. لا تكرر تلقائيًا بمراجعة جديدة.

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

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

المجموعات

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

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

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

    تُنشأ المجموعات وتُدار داخل اللعبة.

    يقرأ المثال الأول البيانات. لا ينشئ مجموعة أو مباراة أو كائناً. القائمة الفارغة استجابة أولى صالحة.

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

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

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

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

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

C#
Assets/Scripts/GroupsDemo.cs
استدعاء horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3​
4public sealed class GroupsDemo : MonoBehaviour
5{
6 // Initialize/connect once and restore the existing player in the Quickstart first.
7 // Invoke from a player action; no background refresh or membership mutation.
8 public async void ReadMyGroups()
9 {
10 var user = UserManager.Instance.CurrentUser;
11 if (user == null || !user.IsValid()) return;
12 var result = await GroupsManager.Instance.GetGroups(user.UserId);
13 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
14 Debug.Log($"Player revision: {result.Data.revision}");
15 foreach (var group in result.Data.groups)
16 Debug.Log($"Group {group.id}: {group.myRole}, revision {group.revision}");
17 // result.Data.limits contains all current limits; existing groups may exceed them.
18 // GetMembers(userId, groupId, afterUserId: null, limit: 1) reads one page.
19 // Keep its revision and nextAfterUserId. A changed revision requires a restart.
20 // Pending createdAt may be absent/null; it does not mean the Unix epoch.
21 }
22}
23// For writes use the SDK GroupsExample and its durable GroupsSampleStore.
24// Preserve the exact project/player, body, expected revision and pending requestId.
25// Unknown create: read/reconcile explicitly; never create with a replacement revision.
فتح مثال SDK الكامل ↗

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

بعد انتهاء المهلة أو التعارض احتفظ بالإجراء الأصلي واقرأ الحالة. لا تكرر تلقائيًا بمراجعة جديدة.

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

نقاط النهاية
  • GET/groups
  • GET/groups/{groupId}
  • GET/groups/{groupId}/members
  • GET/groups/{groupId}/pending
  • POST/groups
  • PUT/groups/{groupId}
  • POST/groups/{groupId}/join
  • POST/groups/{groupId}/request
  • POST/groups/{groupId}/invite
  • POST/groups/{groupId}/accept-invite
  • POST/groups/{groupId}/decline-invite
  • POST/groups/{groupId}/cancel-invite
  • POST/groups/{groupId}/accept-request
  • POST/groups/{groupId}/decline-request
  • POST/groups/{groupId}/cancel-request
  • POST/groups/{groupId}/leave
  • POST/groups/{groupId}/remove
  • POST/groups/{groupId}/role
  • POST/groups/{groupId}/transfer
  • POST/groups/{groupId}/delete
كل نقاط النهاية في مرجع API
اقتراحنا لخطوتك التالية

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

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