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.

  1. 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/.

  2. Wenn Sie das Tutorial zum Trennen von "Erste Schritte" nicht abgeschlossen haben, sollten Sie dies jetzt tun.

  3. Erstellen Sie ein neues Projekt auf dem Dashboard zum Aufheben der Ordnerung, wie unten gezeigt.

Erstellen eines neuen Projekts zum Trennen von Ordnern

  1. 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.

Trennen von Dashboard

  1. Aktualisieren Sie die Projekteinstellungen, und schließen Sie PlayFab in die Abhängigkeiten ein:

    https://github.com/PlayFab/LuaSdk/raw/master/Defold/PlayFabClientSdk.zip

Hinzufügen von PlayFab zu Abhängigkeiten

  1. Wählen Sie: Projekt ->Fetch-Bibliotheken aus. Daraufhin sollte wie unten dargestellt ein neuer integrierter PlayFab-Ordner angezeigt werden.

Projekt-Abrufbibliotheken

  1. 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.

  2. 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).
    • Der Gliederungsbereich, der Standard.collection anzeigt, sollte wie im folgenden Beispiel aussehen.

      Hauptgliederungsbereich

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.

  1. Doppelklicken Sie im Editor zum Aufheben der Ordnerung auf PfGettingStarted.gui_script.

  2. Dadurch sollte die Datei für die Textbearbeitung geöffnet werden.

  3. 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
  1. 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
  • 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 durch 144 Ihre titleId.
    • 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 LoginWithCustomIDRequestgibt es einen obligatorischen Parameter von , der CustomIdeinen Spieler eindeutig identifiziert, und CreateAccount, der die Erstellung eines neuen Kontos mit diesem Aufruf ermöglicht.
      • Für die Anmeldung möchten die meisten Entwickler eine geeignetere Anmeldemethode verwenden.
    • 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.errorDetailsoder error.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.