ゲームのアイデアと機能

次に追加する機能

マーケット

2人のプレイヤー間で元の所持アイテムを取引します。

SDK:developプレイヤーセッションが必要
Unity
マーケットのイラスト
確認できる結果

購入者は同じアイテムを受け取り、販売者は合意した価格から設定済みの手数料を引いた額を受け取ります。

動画は後日公開

この手順の動画はまだありません。ガイドとMCPへの依頼は利用できます。

マーケット

同じプロジェクトを準備する

  1. ゲームの設定と同じプロジェクトをダッシュボードで選択してください。

    マーケット →
  2. 最初のリクエストに追加の定義は不要です。対応するゲームデータがなければ、空の結果も正常です。

    通貨、手数料、有効な価格ルールを1つ以上設定してください。

    同じプロジェクトにログインした2人のプレイヤーを使います。通貨、手数料、価格ルールを設定し、未装備のアイテムを出品して、購入を明示的に確認してください。

    アイテム →プレイヤー数値 →

この機能を実装する

ガイドは閲覧できます。実行には有効なプロジェクトキーが必要です。 プロジェクトを準備する

SDK をインストールし、プロジェクト設定をインポート済みで、プレイヤーがログインしていること。

この SDK サンプルは develop を使用します。必要な API がインストール済みの SDK にあるか確認してください。

クイックスタートで対象プレイヤーを接続します。ボタンやシーンの明示的な操作からReadListing(listingId)を呼び出してください。ファイルを開くだけではリクエストは送信されません。

C#
Assets/Scripts/MarketplaceDemo.cs
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}
完全なSDKサンプルを開く ↗

2人のプレイヤーで試す

同じプロジェクトにログインした2人のプレイヤーを使います。通貨、手数料、価格ルールを設定し、未装備のアイテムを出品して、購入を明示的に確認してください。

既存のログイン済みセッションを使用します。購入が未確認の場合は元のリクエストを保持して再送し、その後インベントリと残高を更新してください。

キャンセル後も所有者が受け取るまで元のアイテムは保護されます。復旧は以前の所有者が削除されている場合に限ります。

出品情報と重複実行防止情報はプロジェクト内に一度だけ保存されます。プレイヤー側には参照と限定された状態データが残ります。

新しい機能をテストしましょう。

購入者は同じアイテムを受け取り、販売者は合意した価格から設定済みの手数料を引いた額を受け取ります。

ゲームの設定と同じプロジェクトをダッシュボードで選択してください。

エンドポイント
  • 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
API リファレンスのすべてのエンドポイント
次のステップへのおすすめ

毎ラウンドにハイスコアを。

ラウンド終了後にスコアを保存し、上位のプレイヤーを表示します。現在の接続とプレイヤーセッションを引き続き使用します。