PlayFabとSteamworks使ってみたよー

今回はPlayFabとSteamworksを使ってみました!

PlayFabを使用したいのでまずはログイン機能を実装します。

ログインに使うのはSteamworksです。理由としてはSteamworksが自分的に一番楽だからです。ですが!ログイン機能実装の前にPlayFabからSteamアドオンを導入しなくてはなりません。やり方を説明いたします。

まずPlayFabの自分の管理画面のビルドからアドオンを選択してください。

画像1

次にSteamを選択!

画像2

最後にSteamアプリケーションIDとSteamWebAPIキーを入力してください!ここではやり方は省きます。申し訳ございません。

画像3

ここからUnityです!LoginSystemって名前のスクリプトを作成し、LoginというオブジェクトにSteamManagerと一緒に入れます。こんな感じです。

画像4

コードは下のやり方です。

using PlayFab;
using PlayFab.ClientModels;
using Steamworks;
using System;
using System.Text;

public class LoginSystem : MonoBehaviour
{
   public GetPlayerCombinedInfoRequestParams info;


   private void Awake()
   {
       SteamLogin();
   }

   // Start is called before the first frame update
   void Start()
   {
       
   }

   // Update is called once per frame
   void Update()
   {
       
   }


   void SteamLogin()
   {

       if (SteamManager.Initialized)
       {
           PlayFabClientAPI.LoginWithSteam(new LoginWithSteamRequest
           {
               CreateAccount = true,
               SteamTicket = GetSteamAuthTicket(),
               InfoRequestParameters = info,
           }, result =>
           {
               Debug.Log("ログイン成功!");
           }
           , error => { Debug.Log("ログイン失敗... " + error.GenerateErrorReport()); });
       }
   }

   public string GetSteamAuthTicket()
   {
       byte[] ticketBlob = new byte[1024];

       // 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 uint 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();
   }

}


2回目の投稿ということで今回はこのへんで!ありがとうございました!

いいなと思ったら応援しよう!