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

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

قيم اللاعب

عملات وعدّادات وطاقة يديرها الخادم. حدّد الأرصدة والعروض والتغييرات المتحقّق منها لكل مشروع.

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

تعرض اللعبة الأرصدة والعروض المضبوطة. تعيد عمليات الشراء حالة اللاعب الحالية.

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

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

قيم اللاعب

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

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

    قيم اللاعب →
  2. أنشئوا إدخالات الاختبار هذه أو أعيدوا استخدام الموجود منها في نموذج لوحة التحكم. القيم أمثلة وليست بيانات المشروع الحالية.

    القيم
    coins: initialBalance=100, maxBalance=1000000; energy: initialBalance=10, maxBalance=100
    السماح بالتغييرات المباشرة
    false
    العروض
    energy-pack: costs=[{"key":"coins","amount":20}], rewards=[{"key":"energy","amount":5}]

    يُمنح الرصيد الابتدائي مرة واحدة لكل مفتاح قيمة. التغييرات المباشرة معطّلة افتراضيًا. تحتفظ Validated Actions بحدودها لكل جولة؛ وتأتي الحدود اليومية وحدود الرصيد من هذه التعريفات. ترك الحد الاختياري فارغًا يعني عدم وجود حد.

  3. احفظوا الإدخالات وأعيدوا تحميلها وتحققوا منها قبل المثال. احتفظوا بالتعريفات الأخرى.

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

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

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

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

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

C#
Assets/Scripts/PlayerValuesDemo.cs
استدعاء horizOn
1using UnityEngine;
2using PM.horizOn.Cloud.Core;
3using PM.horizOn.Cloud.Manager;
4​
5// Existing SDK/project configuration and authenticated player session required.
6// Call RunReviewedAction explicitly after reviewing this example and its data.
7public sealed class PlayerValuesDemo : MonoBehaviour
8{
9 public async void RunReviewedAction()
10 {
11 var sessionUser = UserManager.Instance.CurrentUser;
12 if (sessionUser == null || !sessionUser.IsValid()) return;
13 var userId = UserManager.Instance.CurrentUser.UserId;
14 var current = await PlayerValuesManager.Instance.GetState(userId);
15 if (!current.IsSuccess) { Debug.LogWarning(current.ErrorCode); return; }
16 foreach (var value in current.State.values) Debug.Log(value.key + "=" + value.balance);
17 // This minimal first call reads authoritative balances, never a local reward delta.
18 // For purchases and original retry, import PlayerValuesExample and its
19 // PendingPlayerValuesPurchase helper from the official SDK samples.
20 // Persist the complete original user/offer/operationId before one send.
21 // An uncertain or expired original must never become a fresh purchase ID.
22 }
23}
فتح مثال SDK الكامل ↗

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

تعرض اللعبة الأرصدة والعروض المضبوطة. تعيد عمليات الشراء حالة اللاعب الحالية.

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

نقاط النهاية
  • GET/player-values
  • GET/player-values/offers
  • POST/player-values/purchase
  • POST/player-values/adjust
كل نقاط النهاية في مرجع API
اقتراحنا لخطوتك التالية

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

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