> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Unity 快速入门

> 安装 PlayFab Unity SDK，并使用编辑器和客户端库从 Unity 项目中通过 C# 进行首个 PlayFab 客户端 API 调用。

# 快速入门：Unity 中的 PlayFab C# 客户端库

开始使用 Unity 中的 PlayFab C# 客户端库。按照步骤安装该软件包，并试用基本任务的示例代码。

本快速入门帮助您在 Unity 引擎中进行首个 PlayFab API 调用。

## 要求

* [PlayFab 开发者帐户](https://developer.playfab.com)。
* 已安装的 Unity 编辑器副本。要通过 Unity Hub 安装个人用途的 Unity 或专业用途的 Unity+，请参阅 [Download Unity](https://unity.com/download)。

> [!NOTE]
>
> PlayFab Unity SDK 支持 Unity 编辑器版本 5.3（2015 年 12 月发布）及更高版本。

* 以下任意类型的 Unity 项目：
  * 全新项目。有关详细信息，请参阅 [Starting Unity for the first time](https://docs.unity3d.com/Manual/get-started-with-unity.html)。
  * 引导式教程项目。有关详细信息，请参阅 [Getting Started with Unity](https://learn.unity.com/)。
  * 现有项目。
* PlayFab Unity SDK。

## 下载和安装 PlayFab SDK

您可以使用 PlayFab Editor Extensions 包来安装 SDK，也可以直接安装 SDK。PlayFab Editor Extensions 是一个独立的 Unity 插件，可简化 SDK 的安装以及为您的游戏配置某些 PlayFab 设置的过程。有关在不使用 PlayFab Editor Extensions 的情况下安装 SDK 的信息，请参阅 [Installing the PlayFab SDK Without Editor Extensions for Unity](https://docs.xbox.com/zh-CN/services/playfab/sdks/unity3d/installing-unity3d-sdk.md#download-and-install-the-sdk-only)。

1. 下载 [PlayFab Unity Editor Extensions Asset Package](https://aka.ms/PlayFabUnityEdEx)。
2. 打开您的 Unity 项目。
3. 导航到下载文件的位置，双击 `PlayFabEditorExtensions.UnityPackage` 文件以在 Unity 编辑器中打开 **Import Unity Package** 对话框。

   ![Import Unity Asset package](https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unity3d/import-uedex.png?fit=max\&auto=format\&n=N3T1ucKV7zIMBudj\&q=85\&s=7fe7482c3981c4c09469872bc7ee6bc1)
4. 要将 PlayFab Unity Editor Extensions 导入到您的项目，请选择 **Import**。
5. 导入完成后，PlayFab Unity Editor Extensions 面板应会自动打开并显示 SDK 安装对话框。

> [!NOTE]
>
> 如果该面板未打开，或者您关闭了面板并希望重新打开它，可以通过选择 **Window** > **PlayFab** > **Editor Extensions** 来打开。

![Install PlayFab SDK](https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unity3d/install-sdk.png?fit=max\&auto=format\&n=N3T1ucKV7zIMBudj\&q=85\&s=ef1dddd1a1f2e66865c1ffae2f972fbe)

6\. 选择 **Install PlayFab SDK** 以自动将 SDK 导入到您的项目中，或升级当前安装的版本。

## 设置您的 title 设置

在进行 API 调用之前，您必须创建 **PlayFabSharedSettings.asset** 并指定接收调用的 Title ID。要设置 Title ID：

1. 选择 **PlayFab** > **MakePlayFabSharedSettings**，这会创建 settings asset 并在 Inspector 面板中打开它。

2. 在 inspector 中设置您的 **Title ID**。

   ![PlayFab Title ID Setting](https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unity3d/playfab-shared-settings-title-id.png?fit=max\&auto=format\&n=N3T1ucKV7zIMBudj\&q=85\&s=6d2534c5573758d21d3f860adcab8f65)

3. 现在，您也可以随时通过 Editor Extensions 面板中的 **Settings** 选项卡查看和更改当前的 Title ID。

**Developer Secret Key** 默认未设置。如果您正在构建服务器版本，请务必在 **PlayFabSharedSettings.asset** 中提供 secret key。

![PlayFab Developer Secret Key Setting](https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unity3d/playfab-shared-settings-secret-key.png?fit=max\&auto=format\&n=N3T1ucKV7zIMBudj\&q=85\&s=35f6f7c6dcd9094e0699bfa967b8ec77)

**Developer Secret Key** 会自动设置为该 Title 的默认 secret key。有关 secret key 的更多信息，请参阅 [Secret key management](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/gamemanager/secret-key-management.md)。

否则，请确保在构建游戏客户端时**未设置** secret key。有关 secret key 的更多信息，请参阅 [Secret key management](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/gamemanager/secret-key-management.md)。

> [!NOTE]
>
> 这些扩展允许您自定义用于向 PlayFab 发出请求的 HTTP 传输方式。推荐的默认设置是 Unity Web Request。还有其他选项可提供与旧引擎版本或特定于游戏的 HTTP 实现的兼容性。

## 进行首次 API 调用

本部分指南提供进行首次 PlayFab API 调用的最少步骤。此示例不提供任何 GUI 或屏幕反馈。确认信息会显示在控制台日志中。

1. 如果您的 Unity 项目尚未有 *Scripts* 文件夹（**HDRP** 和 **LWRP/URP** 模板默认已有），请在项目面板中右键单击 **Assets** 文件夹并选择 **Create** > **Folder**。
2. 在 **Assets** 窗口中，将该文件夹命名为 *Scripts*。
3. 右键单击 Scripts 文件夹并选择 **Create** > **C# Script**。
4. 将脚本命名为 PlayFabLogin。
5. 双击该文件以在代码编辑器中打开它。
6. 在您的代码编辑器中，将 PlayFabLogin.cs 的内容替换为提供的代码并保存文件。

   ```csharp theme={null}
   using PlayFab;
   using PlayFab.ClientModels;
   using UnityEngine;

   public class PlayFabLogin : MonoBehaviour
   {
       public void Start()
       {
           if (string.IsNullOrEmpty(PlayFabSettings.staticSettings.TitleId)){
               /*
               Please change the titleId below to your own titleId from PlayFab Game Manager.
               If you have already set the value in the Editor Extensions, this can be skipped.
               */
               PlayFabSettings.staticSettings.TitleId = "42";
           }
           var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true};
           PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
       }

       private void OnLoginSuccess(LoginResult result)
       {
           Debug.Log("Congratulations, you made your first successful API call!");
       }

       private void OnLoginFailure(PlayFabError error)
       {
           Debug.LogWarning("Something went wrong with your first API call.  :(");
           Debug.LogError("Here's some debug information:");
           Debug.LogError(error.GenerateErrorReport());
       }
   }
   ```

> [!NOTE]
>
> 提供的代码不适用于移动 Title。这只是一个示例，展示了如何使用 `CustomID` 登录。要为移动 Title 实现登录，请使用

[LoginWithAndroidDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid)、[LoginWithIOSDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithiosdeviceid) 或某种形式的社交登录，例如 [LoginWithFacebook](xref:titleid.playfabapi.com.client.authentication.loginwithfacebook)。
7\. 在 **Hierarchy** 面板中，右键单击您的场景，然后选择 **Create Empty**（或在旧版本的 Unity 中选择 **Game Object** > **Create Empty**）。
8\. 选择新的 Game Object，并在 **Inspector** 面板中选择 **Add Component**。
9\. 从组件下拉菜单中，选择 **Scripts** > **PlayFabLogin**。

有关在 Unity 编辑器中创建和使用脚本的更多信息，请参阅 Unity 文档中的 [Creating and Using Scripts](https://docs.unity3d.com/Manual/CreatingAndUsingScripts.html)。

## 完成并执行

您现在已准备好测试此示例。

* 请务必保存所有文件并返回 Unity 编辑器
* 按下编辑器顶部的 **Play** 按钮

您应该会在 Unity 控制台面板中看到以下消息。

![Console log of first API call](https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unity3d/first-call-log.png?fit=max\&auto=format\&n=N3T1ucKV7zIMBudj\&q=85\&s=7f898d9ade63a607072bd75daeebf12d)

> [!TIP]
>
> 或者，您可以登录 PlayFab 并在 Game Manager 中导航到该 title，然后选择 **PlayStream Monitor** 选项卡。每次您将焦点从正在运行的 Unity Title 移开时，都会传递一个事件，您可以在 PlayStream Monitor 中查看并确认。

有关所有可用的客户端 API 调用列表，请参阅 [PlayFab API References](https://docs.xbox.com/zh-CN/services/playfab/api-references.md)。

## 后续步骤

本快速入门介绍了简化的用户身份验证过程。有关用户身份验证的更多信息，请参阅 [Login basics and best practices](https://docs.xbox.com/zh-CN/services/playfab/identity/player-identity/login/login-basics-best-practices.md)。

了解如何将帐户绑定到多个设备和登录机制：[Account linking quickstart](https://docs.xbox.com/zh-CN/services/playfab/identity/player-identity/login/quickstart.md)。


## Related topics

- [Party 快速入门](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/quickstart.md)
- [Matchmaking SDK 快速入门](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/matchmaking/quickstart-client-sdk.md)
- [Lobby SDK 快速入门](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/lobby/lobby-getting-started.md)
- [快速入门](https://docs.xbox.com/zh-CN/services/playfab/economy-monetization/economy-v2/quickstart.md)
- [Photon 快速入门](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/service-gateway/add-ons/photon/quickstart.md)
