Идеи и функции для игры

Ваша следующая функция

Значения игрока

Валюты, счётчики и энергия под управлением сервера. Настраивайте балансы, предложения и проверяемые изменения для каждого проекта.

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
Наше предложение для следующего шага

Добавьте рекорд для каждого раунда.

Сохраняйте результат после раунда и показывайте лидеров. Продолжайте использовать подключение и сессию игрока.