Lua-Schnellstart zum Trennen von Ordnern
Diese Schnellstartanleitung unterstützt Sie bei der Erstellung Ihres ersten PlayFab-API-Aufrufs mithilfe von Defold.
Bevor Sie eine PlayFab-API aufrufen können, müssen Sie über ein PlayFab-Entwicklerkonto verfügen.
Trennen der Projekteinrichtung
Betriebssystem: Dieser Leitfaden ist für Windows 10 geschrieben. Es sollte auch gut mit einem Mac funktionieren.
Erstellen Sie ein Konto, und laden Sie die Entschlüsselung herunter, oder melden Sie sich unter https://www.defold.com/ an (verwendet Google O-Auth): https://d.defold.com/stable/.
Wenn Sie das Tutorial zum Trennen von "Erste Schritte" nicht abgeschlossen haben, sollten Sie dies jetzt tun.
Erstellen Sie ein neues Projekt auf dem Dashboard zum Aufheben der Ordnerung, wie unten gezeigt.
- Führen Sie Defold aus, und laden Sie Das neue Projekt. Es sollten mehrere Fenster angezeigt werden, die in etwa wie das unten gezeigte Beispiel aussehen.
Aktualisieren Sie die Projekteinstellungen, und schließen Sie PlayFab in die Abhängigkeiten ein:
https://github.com/PlayFab/LuaSdk/raw/master/Defold/PlayFabClientSdk.zip
- Wählen Sie: Projekt ->Fetch-Bibliotheken aus. Daraufhin sollte wie unten dargestellt ein neuer integrierter PlayFab-Ordner angezeigt werden.
Erstellen Sie einige Dateien:
Standard/PfGettingStarted.gui
Klicken Sie mit der rechten Maustaste auf den Ordner "Standard" ->new ->Gui File ->PfGettingStarted.gui.
Standard/PfGettingStarted.gui_script
Klicken Sie mit der rechten Maustaste auf den Ordner "Standard" ->new ->Gui Script File ->PfGettingStarted.gui_script.
Binden Sie unsere neue GUI in die Standard.collection ein.
Doppelklicken Sie auf Standard.collection, um sie zu öffnen.
Im Gliederungsbereich:
- Klicken Sie mit der rechten Maustaste auf Spielobjekt hinzufügen (optional in PfGui umbenennen).
- Right-Click das neue Objekt , Komponente aus Datei hinzufügen...
- PfGettingStarted.gui (erstellt oben).
- Right-Click das neue Objekt , Komponente aus Datei hinzufügen...
- Klicken Sie mit der rechten Maustaste auf Spielobjekt hinzufügen (optional in PfGui umbenennen).
Der Gliederungsbereich, der Standard.collection anzeigt, sollte wie im folgenden Beispiel aussehen.
Die PlayFab-Installation ist abgeschlossen. Dieses Projekt kann noch nicht erstellt werden, aber wir werden dies im nächsten Schritt beheben.
Einrichten Ihres ersten API-Aufrufs
Dieser Leitfaden enthält die Mindestschritte für Ihren ersten PlayFab-API-Aufruf. Die Bestätigung wird im Spielfenster angezeigt.
Doppelklicken Sie im Editor zum Aufheben der Ordnerung auf PfGettingStarted.gui_script.
Dadurch sollte die Datei für die Textbearbeitung geöffnet werden.
Aktualisieren Sie den Inhalt von PfGettingStarted.gui_script wie unten gezeigt.
Notiz
Informationen zum Suchen des richtigen Formats für das loginRequest-Objekt in diesem Beispiel finden Sie in der API-Referenz für LoginWithCustomID.
local PlayFabClientApi = require("PlayFab.PlayFabClientApi")
local IPlayFabHttps = require("PlayFab.IPlayFabHttps")
local PlayFabHttps_Defold = require("PlayFab.PlayFabHttps_Defold")
IPlayFabHttps.SetHttp(PlayFabHttps_Defold) -- Assign the Defold-specific IHttps wrapper
PlayFabClientApi.settings.titleId = "144" -- Please change this value to your own titleId from PlayFab Game Manager
function init(self)
local loginRequest = {
-- See the API reference for LoginWithCustomID
TitleId = PlayFabClientApi.settings.titleId,
CustomId = "GettingStartedGuide",
CreateAccount = true
}
PlayFabClientApi.LoginWithCustomID(loginRequest, OnLoginSuccess, OnLoginFailed)
end
function OnLoginSuccess(result)
local pfTestOutput = gui.get_node("pfOutput")
gui.set_text(pfTestOutput, "Congratulations, you made your first successful API call!")
end
function OnLoginFailed(error)
local pfTestOutput = gui.get_node("pfOutput")
local message = "Something went wrong with your first API call.\n"
local message = message .. "Here's some debug information:\n"
local message = message .. error.GenerateErrorReport()
gui.set_text(pfTestOutput, message)
end
Klicken Sie im Editor Zum Trennen aufheben mit der rechten Maustaste auf PfGettingStarted.gui ->Open With ->Text Editor. Leider ändert dies eine interne Einstellung in "Trennen", also:
Öffnen Sie es erneut: Klicken Sie mit der rechten Maustaste auf PfGettingStarted.gui ->Open With ->GUI Editor. Dadurch wird der Standardwert wieder auf normal zurückgesetzt.
Wählen Sie die Registerkarte Textbearbeitung für PfGettingStarted.gui aus.
Aktualisieren Sie den Textinhalt von PfGettingStarted.gui wie unten gezeigt.
script: "/main/PfGettingStarted.gui_script"
fonts {
name: "system_font"
font: "/builtins/fonts/system_font.font"
}
background_color {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
nodes {
position {
x: 100.0
y: 620.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
size {
x: 1080.0
y: 520.0
z: 0.0
w: 1.0
}
color {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
type: TYPE_TEXT
blend_mode: BLEND_MODE_ADD
text: "Logging in..."
font: "system_font"
id: "pfOutput"
xanchor: XANCHOR_LEFT
yanchor: YANCHOR_TOP
pivot: PIVOT_NW
outline {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
shadow {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
adjust_mode: ADJUST_MODE_FIT
line_break: false
layer: ""
inherit_alpha: true
clipping_mode: CLIPPING_MODE_NONE
clipping_visible: true
clipping_inverted: false
alpha: 1.0
outline_alpha: 1.0
shadow_alpha: 1.0
template_node_child: false
text_leading: 1.0
text_tracking: 0.0
size_mode: SIZE_MODE_AUTO
}
material: "/builtins/materials/gui.material"
adjust_reference: ADJUST_REFERENCE_PARENT
max_nodes: 512
Fertig stellen und ausführen
Stellen Sie zunächst sicher, dass alles gespeichert ist, und wählen Sie eine andere Registerkarte aus. Suchen Sie dann nach "*"-Markern– manchmal wird die Defold-Aktualisierung nicht aktualisiert.
Erstellen Sie dann Ihr Spiel (STRG+b oder Dropdowns: Projekt ->Erstellen und Starten). Der folgende Text sollte auf dem Bildschirm angezeigt werden:
"Herzlichen Glückwunsch, Sie haben Ihren ersten erfolgreichen API-Aufruf durchgeführt!"
Eine Liste aller verfügbaren Client-API-Aufrufe finden Sie in unserer Dokumentation zu PlayFab-API-Referenzen .
Wir wünschen viel Vergnügen bei der Codeerstellung!
Dekonstruieren des Codes
PfGettingStarted.gui
- Unsere Anweisungen für
PfGettingStarted.gui
dienen der Zweckmäßigkeit, nicht der Anweisung. Diese Datei ist eine GUI-Definition, die dem Bildschirm ein Textfeld hinzufügt und es an unser anderes Skript bindet:PfGettingStarted.gui_script
. Sie würden diese Dateien in der Regel NICHT in Textform bearbeiten. - Eine entsprechende Anleitung zum Erstellen von Defold GUI-Widgets finden Sie in diesem Leitfaden:
- GUI-Szenen in Defold
- Unsere Anweisungen für
PfGettingStarted.gui_script
Require-Anweisungen und Setup.
PlayFabClientApi
ermöglicht Das Ausführen von Client-API-Aufrufen: Aus diesem Grund sind Sie hier.- IPlayFabHttps und PlayFabHttps_Defold:
- Die PlayFab Defold-Plug-Ins basieren auf dem PlayFab LuaSdk. Die Sprache Lua verfügt nicht über ein ordnungsgemäßes HTTPS-Modul. Jede Spiel-Engine, die Lua verwendet, implementiert eine eigene. Diese beiden Variablen teilen PlayFabSdk mit, wie auf HTTPS zugegriffen werden soll. Sie müssen dies nur einmal in Ihrem Projekt in der ersten Szene tun. Andernfalls ist es nur erforderliches Bausteine
PlayFabClientApi.settings.titleId = "144"
- Jedes Projekt, das PlayFab verwendet, sollte einen eindeutigen Titel auf der PlayFab-Website erstellen, den wir Game Manager nennen. Suchen Sie in Game Manager nach ,
titleId
und ersetzen Sie durch144
IhretitleId
.
- Jedes Projekt, das PlayFab verwendet, sollte einen eindeutigen Titel auf der PlayFab-Website erstellen, den wir Game Manager nennen. Suchen Sie in Game Manager nach ,
function init(self)
- Defold-Funktion: Diese Funktion wird aufgerufen, wenn die GUI initialisiert wird.
local loginRequest = { TitleId = PlayFabClientApi.settings.titleId, CustomId = "GettingStartedGuide", CreateAccount = true }
- Die meisten PlayFab-API-Methoden erfordern Eingabeparameter, und diese Eingabeparameter werden in ein Anforderungsobjekt gepackt.
- Jede API-Methode erfordert ein eindeutiges Anforderungsobjekt mit einer Mischung aus optionalen und obligatorischen Parametern.
- Für
LoginWithCustomIDRequest
gibt es einen obligatorischen Parameter von , derCustomId
einen Spieler eindeutig identifiziert, undCreateAccount
, der die Erstellung eines neuen Kontos mit diesem Aufruf ermöglicht.
- Für
- Für die Anmeldung möchten die meisten Entwickler eine geeignetere Anmeldemethode verwenden.
- Eine Liste aller Anmeldemethoden und Eingabeparameter finden Sie in der Dokumentation zur PlayFab-Anmeldung . Häufig sind folgende Optionen verfügbar:
PlayFabClientApi.LoginWithCustomID(loginRequest, OnLoginSuccess, OnLoginFailed)
- Dadurch wird der API-Aufruf mithilfe der Anforderung ausgeführt und Rückruffunktionen für Erfolgs- und Fehlerbedingungen bereitgestellt.
function OnLoginSuccess(result)
- Das Ergebnisobjekt vieler API-Erfolgsrückrufe enthält die angeforderten Informationen.
LoginResult
enthält einige grundlegende Informationen zum Spieler, aber für die meisten Benutzer ist die Anmeldung einfach ein obligatorischer Schritt vor dem Aufrufen anderer APIs.
function OnLoginFailed(error)
API-Aufrufe können aus vielen Gründen fehlschlagen, und Sie sollten immer versuchen, Fehler zu behandeln.
Warum API-Aufrufe fehlschlagen (In der Reihenfolge der Wahrscheinlichkeit)
PlayFabSettings.TitleId ist nicht festgelegt. Wenn Sie vergessen, titleId auf Ihren Titel festzulegen, funktioniert nichts.
Anforderungsparameter. Wenn Sie nicht die richtigen oder erforderlichen Informationen für einen bestimmten API-Aufruf angegeben haben, tritt ein Fehler auf. Weitere Informationen finden Sie unter
error.errorMessage
,error.errorDetails
odererror.GenerateErrorReport()
.Gerätekonnektivitätsproblem. Mobiltelefone verlieren ständig die Konnektivität bzw. erhalten sie wieder, sodass jeder API-Aufruf zu einem beliebigen Zeitpunkt nach dem Zufallsprinzip fehlschlagen kann und dann sofort danach funktioniert. Wenn Sie in einen Tunnel gehen, können Sie vollständig getrennt werden.
PlayFab-Serverproblem. Wie bei der gesamten Software kann es Probleme geben. Informationen zu Updates finden Sie in unseren Versionshinweisen .
Das Internet ist nicht 100% zuverlässig. Manchmal ist die Nachricht beschädigt oder kann den PlayFab-Server nicht erreichen.
Wenn Sie Probleme beim Debuggen eines Problems haben und die Informationen in den Fehlerinformationen nicht ausreichen, besuchen Sie uns in unseren Foren.
local pfTestOutput = gui.get_node("pfOutput")
- Dies ist eine weitere Defold GUI-Funktion. Es ruft das GUI-Objekt ab, das
pfOutput
in unserer Datei PfGettingStarted.gui definiert ist, und weist ihm Text zu, der dem Benutzer angezeigt werden soll.
- Dies ist eine weitere Defold GUI-Funktion. Es ruft das GUI-Objekt ab, das