Idées et fonctionnalités de jeu

Votre prochaine fonctionnalité

Marché

Échanger un objet original entre deux joueurs.

SDK : developSession de joueur requise
Unity
Illustration de Marché
Votre résultat visible

L’acheteur reçoit le même objet et le vendeur reçoit le prix convenu, moins les frais configurés.

Vidéo à venir

Cette étape n’a pas encore de vidéo. Le guide et la demande MCP sont utilisables.

Marché

Préparer le même projet

  1. Sélectionnez dans le tableau de bord le même projet que dans la configuration de votre jeu.

    Marché →
  2. Aucune définition supplémentaire pour la première requête. Un résultat vide est valide tant que les données du jeu manquent.

    Définissez une monnaie, des frais et au moins une règle de prix active.

    Utilisez deux joueurs connectés au même projet. Configurez la monnaie, les frais et la règle de prix, puis proposez un objet non équipé et confirmez explicitement son achat.

    Objets →Valeurs du joueur →

Intégrer cette fonctionnalité

Vous pouvez consulter le guide. Son exécution nécessite une clé de projet active. Préparer le projet

SDK installé, configuration du projet importée et joueur connecté.

Cet exemple du SDK utilise develop. Vérifiez que les API nécessaires existent dans votre SDK installé.

Terminez la connexion du démarrage rapide avec le joueur choisi. Appelez ReadListing(listingId) via un bouton ou une action de scène explicite. Ouvrir le fichier seul n’envoie aucune requête.

C#
Assets/Scripts/MarketplaceDemo.cs
Appel 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}
Ouvrir l’exemple SDK complet ↗

Tester avec deux joueurs

Utilisez deux joueurs connectés au même projet. Configurez la monnaie, les frais et la règle de prix, puis proposez un objet non équipé et confirmez explicitement son achat.

Utilisez la session déjà connectée. Après un achat non confirmé, conservez et renvoyez la même demande initiale, puis actualisez l’inventaire et les soldes.

L’annulation protège l’objet original jusqu’à sa récupération par son propriétaire. La réattribution n’est possible que si le propriétaire précédent a été supprimé.

Les annonces et la protection contre les répétitions sont stockées une seule fois dans le projet. Les joueurs conservent des références et des données d’état limitées.

Testez votre nouvelle fonctionnalité.

L’acheteur reçoit le même objet et le vendeur reçoit le prix convenu, moins les frais configurés.

Sélectionnez dans le tableau de bord le même projet que dans la configuration de votre jeu.

Points de terminaison
  • 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
Tous les points de terminaison dans la référence API
Notre suggestion pour la suite

Donnez un meilleur score à chaque partie.

Enregistrez le score après une partie et montrez qui est en tête. Continuez avec votre connexion et la session du joueur.