Pomysły i funkcje gry

Twoja następna funkcja

Rynek

Wymień oryginalny przedmiot między dwoma graczami.

SDK: developWymagana sesja gracza
Unity
Ilustracja funkcji Rynek
Widoczny rezultat

Kupujący otrzymuje ten sam przedmiot, a sprzedający uzgodnioną cenę pomniejszoną o skonfigurowaną opłatę.

Wideo pojawi się później

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

Rynek

Przygotuj ten sam projekt

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

    Rynek →
  2. Pierwsze żądanie nie wymaga dodatkowej definicji. Pusty wynik jest poprawny, dopóki nie powstaną odpowiednie dane gry.

    Ustawcie walutę, opłatę i co najmniej jedną aktywną regułę cenową.

    Użyj dwóch zalogowanych graczy w tym samym projekcie. Ustaw walutę, opłatę i regułę ceny, wystaw nieużywany element wyposażenia i wyraźnie potwierdź zakup.

    Przedmioty →Wartości gracza →

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 ReadListing(listingId) jawnym przyciskiem lub akcją sceny. Samo otwarcie pliku nie wysyła żądania.

C#
Assets/Scripts/MarketplaceDemo.cs
Wywołanie horizOn
1using System.Threading.Tasks;
2using UnityEngine;
3using PM.horizOn.Cloud.Examples.Features;
4using PM.horizOn.Cloud.Objects.Network.Responses;
5​
6public class MarketplaceDemo : MonoBehaviour
7{
8 // Import the SDK Examples sample. Bind its screen to the signed-in player
9 // and set the stable projectId in the Inspector. Never use an Account Key.
10 public MarketplaceExample screen;
11​
12 public Task<MarketplaceResult<MarketplaceListingView>> ReadListing(string listingId)
13 => MarketplaceQuickstart.ReadOneListing(screen, listingId);
14​
15 // Wire only to the player's Buy confirmation after displaying ReadListing.
16 public Task<bool> ConfirmPurchase(string listingId)
17 => MarketplaceQuickstart.BuyReviewedListing(screen, listingId);
18​
19 // false/timeout does not prove nonexecution. Use screen.RetryPending() or
20 // screen.RecoverOriginalOperation(); never replace the unresolved original.
21 // The sample refreshes Inventory, Values and Marketplace before acknowledgement.
22 // Its native file journal rejects WebGL writes; use a durable browser persister.
23}
Otwórz pełny przykład SDK ↗

Test z dwoma graczami

Użyj dwóch zalogowanych graczy w tym samym projekcie. Ustaw walutę, opłatę i regułę ceny, wystaw nieużywany element wyposażenia i wyraźnie potwierdź zakup.

Użyj istniejącej zalogowanej sesji. Po niepotwierdzonym zakupie zachowaj i ponów to samo pierwotne żądanie, a następnie odśwież ekwipunek i salda.

Anulowanie chroni oryginalny przedmiot do chwili odebrania przez właściciela. Odzyskanie jest możliwe tylko po usunięciu poprzedniego właściciela.

Oferty i ochrona przed powtórzeniami są zapisywane w projekcie tylko raz. Gracze przechowują odwołania i ograniczone dane stanu.

Przetestuj nową funkcję.

Kupujący otrzymuje ten sam przedmiot, a sprzedający uzgodnioną cenę pomniejszoną o skonfigurowaną opłatę.

Wybierz w panelu ten sam projekt co w konfiguracji gry.

Punkty końcowe
  • GET/marketplace/limits
  • GET/marketplace/rules
  • GET/marketplace
  • GET/marketplace/listings
  • GET/marketplace/listings/{listingId}
  • POST/marketplace/listings
  • POST/marketplace/listings/{listingId}/buy
  • POST/marketplace/listings/{listingId}/cancel
  • GET/marketplace/operations/{operationId}
  • POST/marketplace/listings/{listingId}/retry-return
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.