Pomysły i funkcje gry

Twoja następna funkcja

Wartości gracza

Waluty, liczniki i energia zarządzane przez serwer. Definiuj salda, oferty i sprawdzane zmiany dla każdego projektu.

SDK: developWymagana sesja gracza
Unity
Ilustracja funkcji Wartości gracza
Widoczny rezultat

Gra pokazuje skonfigurowane salda i oferty. Zakupy zwracają aktualny stan gracza.

Wideo pojawi się później

Ten krok nie ma jeszcze wideo. Instrukcja i polecenie MCP są już dostępne.

Wartości gracza

Przygotuj ten sam projekt

  1. Wybierz w panelu ten sam projekt co w konfiguracji gry.

    Wartości gracza →
  2. Utwórz lub wykorzystaj te wpisy testowe w formularzu panelu. To wartości przykładowe, nie aktualne dane projektu.

    Wartości
    coins: initialBalance=100, maxBalance=1000000; energy: initialBalance=10, maxBalance=100
    Zezwalaj na bezpośrednie zmiany
    false
    Oferty
    energy-pack: costs=[{"key":"coins","amount":20}], rewards=[{"key":"energy","amount":5}]

    Saldo początkowe jest przyznawane raz dla danego klucza. Bezpośrednie zmiany są domyślnie wyłączone. Validated Actions zachowuje limity na rozgrywkę; limity dzienne i salda pochodzą z tych definicji. Puste opcjonalne limity oznaczają brak ograniczenia.

  3. Zapisz, wczytaj ponownie i sprawdź wpisy przed uruchomieniem przykładu. Zachowaj pozostałe definicje.

Dodaj tę funkcję

Możesz przeglądać poradnik. Uruchomienie wymaga aktywnego klucza projektu. Przygotuj projekt

Zainstalowany SDK, zaimportowana konfiguracja projektu i zalogowany gracz.

Ten przykład SDK korzysta z develop. Sprawdź, czy wymagane API istnieją w zainstalowanym SDK.

Połącz wybranego gracza zgodnie z szybkim startem. Wywołaj RunReviewedAction() jawnym przyciskiem lub akcją sceny. Samo otwarcie pliku nie wysyła żądania.

C#
Assets/Scripts/PlayerValuesDemo.cs
Wywołanie 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}
Otwórz pełny przykład SDK ↗

Przetestuj nową funkcję.

Gra pokazuje skonfigurowane salda i oferty. Zakupy zwracają aktualny stan gracza.

Wybierz w panelu ten sam projekt co w konfiguracji gry.

Punkty końcowe
  • GET/player-values
  • GET/player-values/offers
  • POST/player-values/purchase
  • POST/player-values/adjust
Wszystkie punkty końcowe w dokumentacji API
Nasza propozycja następnego kroku

Daj każdej rundzie najlepszy wynik.

Zapisz wynik po rundzie i pokaż, kto prowadzi. Nadal korzystaj z połączenia i sesji gracza.