Euer nächstes Feature
Validierte Aktionen
Spielaktionen serverseitig prüfen lassen.
Unity

Euer sichtbares Ergebnis
Eine gültige Aktion wird angenommen und eine ungültige abgewiesen.
Spielaktionen validieren3:08
Video separat öffnen ↗Feature einbauen
Ihr könnt die Anleitung vorab ansehen. Zum Ausführen braucht ihr einen aktiven Projekt-Key. Projekt vorbereiten
SDK installiert, Projekt-Konfiguration importiert und Spieler angemeldet.
Dieses SDK-Beispiel nutzt develop. Prüft, ob die nötigen APIs in eurem installierten SDK verfügbar sind.
C#
1using UnityEngine;
2using PM.horizOn.Cloud.Core;
3using PM.horizOn.Cloud.Manager;
4
5// Hängt dieses Skript an ein GameObject in eurer ersten Szene.
6public class ValidatedActionsDemo : MonoBehaviour
7{
8 async void Start()
9 {
10 // Einrichtung: initialisieren, verbinden und einen Spieler
11 // anmelden.
12 HorizonApp.Initialize();
13 await new HorizonServer().Connect();
14 await UserManager.Instance.SignUpAnonymous("PlayerName");
15
16 byte[] inputLog = System.Array.Empty<byte>();
17
18 // horizOn: Run starten, Eingaben aufzeichnen, geprüfte Punktzahl
19 // einreichen.
20 // 1. Dashboard: turn on "Validated submissions only" for the board "weekly"
21 var va = ValidatedActionsManager.Instance;
22
23 // 2. Round start: single-use ticket plus server seed
24 var run = await va.StartRun("weekly");
25 if (run == null) { Debug.Log(va.LastErrorCode); return; } // e.g. RUN_RATE_LIMITED
26 var random = new System.Random(run.seed);
27
28 // ... play, record the inputs into inputLog (byte[]) ...
29
30 // 3. Round end: score plus input log (the SDK sends its SHA-256 hash)
31 var result = await va.SubmitValidated(18250, inputLog);
32 if (result == null)
33 {
34 Debug.Log($"{va.LastErrorCode}, run kept: {va.HasActiveRun}"); // e.g. DURATION_TOO_SHORT
35 }
36 }
37}
Testet euer neues Feature.
Eine gültige Aktion wird angenommen und eine ungültige abgewiesen.
Wählt im Dashboard dasselbe Projekt wie in eurer Spielkonfiguration.
Doku und Dashboard
Doku lesenTutorial-Video
Validierte AktionenUnity3:24
Video separat öffnen ↗Servereigene WerteUnity4:54
Video separat öffnen ↗EingabeprotokollUnity5:14
Video separat öffnen ↗

