Einrichten der PlayFab-Authentifizierung mit Steam und Unity
Dieses Tutorial führt Sie durch die Schritte für die Anmeldung bei PlayFab mithilfe von Steam über SteamWorks und Unity.
Voraussetzungen
Bevor Sie beginnen, sollten Sie über Folgendes verfügen:
- Ein Unity-Projekt mit einem importierten PlayFab SDK und einer konfigurierten Titel-ID.
- Eine Steam-Anwendung mit:
- Die AppID ist bereits eingerichtet. Die AppID wird in der Regel über den Steam Direct -Prozess (früher Greenlight) abgerufen.
- Ein Steam Publisher-Web-API-Schlüssel. Lesen Sie erstellen einen Herausgeber-Web-API-Schlüssel in der Steamworks-Dokumentation , um einen Herausgeberschlüssel zu generieren.
- Vertrautheit mit Anmeldegrundlagen und bewährten Methoden.
Einrichten eines PlayFab-Titels
Um die Unterstützung für die Steam-Autorisierung zu aktivieren, erfordert PlayFab, dass Sie das Steam-Add-On aktivieren.
Wechseln Sie zu Ihrer Game Manager-Seite :
- Wählen Sie das Menüelement Add-Ons aus.
- Suchen Sie in der Liste der verfügbaren Add-Onsnach Steam , und wählen Sie den Titellink aus:
- Geben Sie Ihre App-ID ein.
- Geben Sie den Web-API-Schlüssel ein.
- Wählen Sie dann Install Steam (Steam installieren) aus.
Damit wird das Einrichten eines PlayFab-Titels für die Steam-Integration abgeschlossen.
Einrichten eines Unity-Projekts
Laden Sie zunächst die neueste Version von Steamworks.NET von der Seite Releases herunter.
- Rufen Sie die Unity-Paketversion des Release ab, und importieren Sie sie in das Projekt.
- Nachdem Sie das Paket importiert haben, schließen Sie Unity.
- Navigieren Sie zum Stammordner Project .
- Suchen Sie die steam_appid.txt-Datei .
- Öffnen Sie die Datei, und ersetzen Sie den App-ID-Wert durch Ihren eigenen Wert.
Öffnen Sie Unity erneut, und erstellen Sie eine neue Szene.
Erstellen Sie in dieser Szene ein neues Gameobjekt namens Steam:
- Fügen Sie dem Gameobject eine SteamManager-Komponente hinzu. Diese Komponente ist Teil von Steamworks.Net.
- Erstellen Sie eine SteamScript-Komponente , und fügen Sie sie dem Gameobject hinzu.
Das folgende Beispiel zeigt den Code für die SteamScript
Komponente.
(Vielen Dank an Dylan Hunt für dieses Beispiel.)
// Import all the necessary namespaces
using System;
using System.Text;
using PlayFab;
using PlayFab.ClientModels;
using Steamworks;
using UnityEngine;
public class SteamScript : MonoBehaviour {
//This method returns
public string GetSteamAuthTicket() {
byte[] ticketBlob = new byte[1024];
uint ticketSize;
// Retrieve ticket; hTicket should be a field in the class so you can use it to cancel the ticket later
// When you pass an object, the object can be modified by the callee. This function modifies the byte array you've passed to it.
HAuthTicket hTicket = SteamUser.GetAuthSessionTicket(ticketBlob, ticketBlob.Length, out ticketSize);
// Resize the buffer to actual length
Array.Resize(ref ticketBlob, (int)ticketSize);
// Convert bytes to string
StringBuilder sb = new StringBuilder();
foreach (byte b in ticketBlob) {
sb.AppendFormat("{0:x2}", b);
}
return sb.ToString();
}
public void OnGUI() {
if (GUILayout.Button("Log In")) {
if (SteamManager.Initialized) {
// Execute PlayFab API call to log in with steam ticket
PlayFabClientAPI.LoginWithSteam(new LoginWithSteamRequest {
CreateAccount = true,
SteamTicket = GetSteamAuthTicket()
}, OnComplete,OnFailed);
}
}
}
// Utility callbacks to log the result
private void OnComplete(LoginResult obj) {
Debug.Log("Success!");
}
private void OnFailed(PlayFabError error) {
Debug.Log("Failed: " + error.GenerateErrorReport());
}
}
Testen
Sie können direkt im Editor testen:
- Führen Sie die Szene aus, und wählen Sie die Schaltfläche Anmelden aus.
- Die Konsolenmeldung sollte nach einem Moment angezeigt werden, die das Authentifizierungsergebnis Success! angibt.