次に追加する機能
検証済みアクション
ゲーム内のアクションをサーバーで検証する。
Unity

確認できる結果
有効なアクションは受け入れられ、無効なアクションは拒否されます。
この手順の動画はまだありません。ガイドとMCPへの依頼は利用できます。
ゲーム内アクションを検証
この機能を実装する
ガイドは閲覧できます。実行には有効なプロジェクトキーが必要です。 プロジェクトを準備する
SDK をインストールし、プロジェクト設定をインポート済みで、プレイヤーがログインしていること。
この SDK サンプルは develop を使用します。必要な API がインストール済みの SDK にあるか確認してください。
C#
1using UnityEngine;
2using PM.horizOn.Cloud.Core;
3using PM.horizOn.Cloud.Manager;
4
5// このスクリプトを最初のシーンの GameObject にアタッチします。
6public class ValidatedActionsDemo : MonoBehaviour
7{
8 async void Start()
9 {
10 // 準備: 初期化、接続、プレイヤーのサインイン。
11 HorizonApp.Initialize();
12 await new HorizonServer().Connect();
13 await UserManager.Instance.SignUpAnonymous("PlayerName");
14
15 byte[] inputLog = System.Array.Empty<byte>();
16
17 // horizOn: ランを開始し、入力を記録し、検証済みスコアを送信。
18 // 1. Dashboard: turn on "Validated submissions only" for the board "weekly"
19 var va = ValidatedActionsManager.Instance;
20
21 // 2. Round start: single-use ticket plus server seed
22 var run = await va.StartRun("weekly");
23 if (run == null) { Debug.Log(va.LastErrorCode); return; } // e.g. RUN_RATE_LIMITED
24 var random = new System.Random(run.seed);
25
26 // ... play, record the inputs into inputLog (byte[]) ...
27
28 // 3. Round end: score plus input log (the SDK sends its SHA-256 hash)
29 var result = await va.SubmitValidated(18250, inputLog);
30 if (result == null)
31 {
32 Debug.Log($"{va.LastErrorCode}, run kept: {va.HasActiveRun}"); // e.g. DURATION_TOO_SHORT
33 }
34 }
35}
新しい機能をテストしましょう。
有効なアクションは受け入れられ、無効なアクションは拒否されます。
ゲームの設定と同じプロジェクトをダッシュボードで選択してください。


