Unity-SDK
Das Haupt-SDK von MAJACLOUD: C# für Unity mit async/await- und Coroutine-APIs, einem Setup-Fenster und einem Starter-Beispiel.
Codekommentare und API-Namen bleiben auf Englisch, damit sie zu den SDKs passen.
Voraussetzungen#
- Unity 2021.3 LTS oder neuer, einschließlich Unity 6. Built-in, URP und HDRP funktionieren gleichermaßen: Das SDK enthält keinen Rendering-Code.
- Nur die integrierten Module von Unity (UnityWebRequest, JSON, uGUI). Das Beispiel verwendet TextMesh Pro.
- Editor, Windows, macOS, Linux, Android, iOS und WebGL. Es werden keine Threads verwendet, daher ist async/await auch unter WebGL sicher. IL2CPP-kompatibel.
Installation#
- Laden Sie das
.unitypackagevon Ihrer Projektseite oder der Seite Downloads herunter. - In Unity: Assets ▸ Import Package ▸ Custom Package…, die Datei auswählen und alles importieren.
- Wenn Unity anbietet, TMP Essentials für das Beispiel zu importieren, stimmen Sie zu.
Alles liegt in Assets/Majacloud: Runtime (das SDK), Editor (Einrichtungswerkzeuge), Samples/Starter und Tests.
Projekt verbinden#
Tools ▸ Majacloud ▸ Setup (auch unter Project Settings ▸ Majacloud) schreibt Assets/Resources/MajacloudSettings.asset. Daraus initialisiert sich das SDK, bevor die erste Szene geladen wird.
| Feld | Wert |
|---|---|
| Base URL | Die Adresse dieser Installation. https://majacloud.majanite.com |
| Project ID | Dashboard ▸ API-Schlüssel. |
| Client Key | Der öffentliche Schlüssel, der mit pk_live_ beginnt. Darf in Builds enthalten sein. |
Test connection speichert Projektname, Tarif und den öffentlichen Schlüssel der Remote-Konfiguration, wodurch die Signaturprüfung fest an Ihren Server gebunden wird.
sk_live_…) niemals in einen Spiel-Build oder eine Webseite ein. Alles, was an Spieler ausgeliefert wird, kann ausgelesen werden.Konfiguration im Code#
Erstellen Sie die Einstellungen zur Laufzeit, etwa um Entwicklungs-Builds auf einen Staging-Server zu richten:
// Switch environments from code (e.g. a staging server in development builds)
var settings = ScriptableObject.CreateInstance<MajacloudSettings>();
settings.Configure("https://staging.yourstudio.com", "<project id>", "pk_live_…");
Majacloud.Initialize(settings);Async und Coroutines#
Zu jeder async-Methode (…Async) gibt es ein Coroutine-Gegenstück mit Callback, für Code ohne async/await.
// Every async method has a coroutine version with a callback
StartCoroutine(Majacloud.Leaderboards.GetTop("coins", 10, result =>
{
if (result.Ok) Debug.Log(result.Value.Total + " players");
}));Starter-Beispiel#
Samples/Starter/Scenes/MajacloudStarter.unity hat fünf Tabs: Leaderboard, Cloud save, Rewards, Config und Account. Die Szene erwartet die Inhalte, die Starter-Beispielinhalte hinzufügen anlegt.
Wiederverwendbare Prefabs in Samples/Starter/Prefabs: MajacloudLeaderboardView, MajacloudPlayerBadge und MajacloudDailyRewardButton. Ziehen Sie sie in Ihre UI und legen Sie im Inspector den Slug bzw. den Belohnungsschlüssel fest.
WebGL und Mobilgeräte#
- Liefern Sie WebGL-Builds über HTTPS aus: Browser blockieren
http://-Anfragen vonhttps://-Seiten. Die API sendet bereits die CORS-Header, die WebGL benötigt. - Browser öffnen neue Tabs nur nach einem Klick. Starten Sie für die Kontoverknüpfung unter WebGL zuerst den Ablauf und öffnen Sie ihn dann in einem Button-Handler (siehe Spieler).
- Auch zum Testen auf einem Smartphone gegen einen Server auf Ihrem Rechner ist HTTPS nötig (oder, nur für die Entwicklung,
ALLOW_INSECURE_HTTPauf dem Server und in den Player Settings erlaubte HTTP-Downloads).
Editor-Menü#
| Menüeintrag | Funktion |
|---|---|
Tools ▸ Majacloud ▸ Setup | Schlüssel, Verbindungstest und Verhaltenseinstellungen. |
Tools ▸ Majacloud ▸ Open Starter Sample | Öffnet die Starter-Szene. |
Tools ▸ Majacloud ▸ Rebuild Starter Sample | Erzeugt Starter-Szene und Prefabs neu. |
Tools ▸ Majacloud ▸ Export .unitypackage | Exportiert das SDK als .unitypackage. |