# Friends 示例

> Follow this workflow to implement sample Friends project in a game.

继续之前，请[下载](https://unity3d.com/get-unity/download)并安装 Unity Hub 和受支持的 Unity 编辑器版本。Friends 服务支持以下 Unity 编辑器版本：

* 2021 或更高版本
  * 支持 UI Toolkit 和 Unity GUI
* 2020.3 或更高版本
  * 支持 Unity GUI

## 下载示例项目##download-the-sample-project

[从 GitHub 下载 Friends 示例项目](https://github.com/Unity-Technologies/com.unity.services.samples.friends)并在受支持的 Unity 编辑器版本中将其打开。在启用 Friends 服务时，建议您让示例项目保持打开状态。

## 启用 Friends 服务##enable-the-friends-service

1. 登录 Unity Dashboard（Unity 后台）。如果您还没有帐户，请参阅“[开始使用 Unity Gaming Services（Unity 游戏服务，UGS）](/services/getting-started.md)”。
2. 转到 **Multiplayer** > **Friends**。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/friends-from-multiplayer-menu.png)
3. 选择 **Set up Friends（设置 Friends）**。
4. 如果您还没有添加付款信息，Unity Dashboard（Unity 后台）可能会提示您添加付款信息。Friends 是一项[带免费套餐的按量付费服务](https://unity.com/solutions/gaming-services/pricing)。不过，Friends 在 Beta 发行版本期间是免费的。
5. 转到设置向导，后者会逐步引导您设置 Friends 项目。

### 通过 Unity 编辑器关联 Friends 项目##link-your-friends-project-with-the-unity-editor

> **Note:**
>
> **注意**：如果您已经通过 Unity 引擎关联了项目，则可以跳过此步骤。您还可以在启用 Friends 服务后关联您的项目。

1. 按照[在 Unity 编辑器中关联项目](/services/getting-started.md#link-your-project-in-the-unity-editor)中的说明操作。
2. 在设置向导中选择 **Next（下一步）**。

### 安装 Friends 软件包##install-the-friends-package

1. 您可以使用 Unity 编辑器 **2021 或更高版本**或 **2020.3 或更高版本**。在 Unity Dashboard（Unity 后台）上选择要在设置向导中使用的版本，然后按照说明操作。
2. 完成后，在设置向导中选择 **Next（下一步）**。

### 开启 Friends##turn-friends-on

1. 将设置向导中的按钮切换至 **On（打开）**，以激活 Friends。该服务激活后，玩家便可以向其他玩家发送好友请求并建立好友列表。
2. 选择 **Finish（完成）**。

> **Note:**
>
> **注意**：如果与其他服务发生冲突，请停用 Friends 服务。您可以随时开启或关闭 Friends 服务。

## 在编辑器中运行示例##running-the-sample-in-editor

按照以下说明来在本地设置示例：

1. 启动 Unity Hub。
2. 选择 **Open（打开）**> **Add project from disk（从磁盘添加项目）**。
3. 选择本地磁盘上的示例项目位置，然后选择 **Add Project（添加项目）**。
4. 示例项目将与正确的编辑器版本一起列在 Unity Hub 中。双击项目以将其打开。您可能需要等待几分钟，以便 Unity 可以启动项目。

## 将资源拖放到项目中##drag-and-dropping-the-assets-into-your-project

此示例作为项目的插件运行。它可以让您立即开始使用 Friends 服务！

### 获取资源##get-the-assets

要么将示例项目中的整个 `Assets/FriendsSample/` 文件夹拖入您的项目，要么将该文件夹导出为 `.unitypackage`。

### 处理依赖关系##resolving-dependencies

该项目依赖于两个非标准的 Unity 软件包：

* Friends Service SDK
  * 要获取该软件包，请转到“Package Manager”（包管理器）（**Window** > **Package manager（包管理器）**）
  * 点击窗口左上角的 + 小图标并选择 \*\*Add package from Git URL（从 Git URL 添加软件包）\*\*或 **Add package by name（按名称添加软件包）**。
  * 键入：**com.unity.services.friends**
* TextMesh Pro 必要资源
  * 要获取该资源，请转到 **Window（窗口）**> **Textmesh Pro** > **Import TMP Essential Resources（导入 TMP 必要资源）**

### 使用示例资源##using-the-sample-assets

在 2020.3 版本中，该示例支持 Canvas 风格的 UI，而在 2021.1 及更高版本中，该示例支持 UIToolkit 风格的 UI。请研究示例场景，以查看层级视图和一般设置。您还可以将 **RelationshipsManager** 拖入任何场景，然后 UI 将会显示它并正常工作。

## 使用示例项目##play-with-the-sample-project

此时，您已在 Unity 编辑器中打开了示例项目。现在是时候与该示例进行互动了。

> **Note:**
>
> **注意**：如果您还没有登录 Unity 编辑器，请先登录并[关联您的 Unity 项目](/services/getting-started.md)，然后再继续。

该示例项目包含一个简单的用户界面，让您能够与 Friends 服务互动并执行以下操作：

* [发送好友请求](#send-a-friend-request)
* [接受好友请求](#send-a-friend-request)
* [忽略好友请求](#send-a-friend-request)
* [屏蔽玩家](#block-a-player)
* [查看好友列表](#view-your-friends-list)
* [查看屏蔽列表](#view-your-block-list)
* [取消屏蔽玩家](#unblock-a-player)
* [移除好友](#remove-a-friend)
* [设置当前状态](#set-your-presence-status)

请参考以下表格，了解各个按钮和用户界面元素的含义。

|          |               |
| -------- | ------------- |
| **按钮名称** | **描述**        |
| 拒绝 (×)   | 拒绝好友请求        |
| 接受 (✔)   | 接受好友请求        |
| 屏蔽 (-)   | 屏蔽玩家          |
| 取消屏蔽     | 从屏蔽列表中移除玩家    |
| 移除       | 从好友列表中移除玩家    |
| 好友列表     | 与您是好友的所有玩家的列表 |
| 屏蔽列表     | 您已屏蔽的所有玩家的列表  |
| 好友请求列表   | 传入好友请求的列表     |

### 启动项目##start-the-project

您必须先启动示例场景，才能与示例用户界面进行互动。

1. 从 \*\*Project（项目）\*\*选项卡中，选择 **Assets（资源）**> **Scenes（场景）**。
2. 双击 **FriendsSampleUGUI 场景或 FriendsSampleUIToolkit 场景**。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/friends-scene.png)
3. 在 Unity 编辑器中通过**运行模式**启动场景。

在场景启动后，示例 Friends 用户界面将会显示。

### 测试项目##testing-the-project

若要单独测试此项目，您必须打开 Unity 编辑器并打开该项目的一个构建版本。

1. 打开“Build Settings”（构建设置）（**File（文件）**> **Build Settings（构建设置）**）。
2. 选择所选平台对应的构建版本。（在 Windows 和 macOS 上测试。）
3. 确保其中一个示例场景是包含的顶部场景。
4. 完成后，同时运行构建和编辑器。

### 发送好友请求##send-a-friend-request

您可以使用玩家 ID 和 \*\*Add Friend（添加好友）\*\*按钮来向其他玩家发送[好友请求](../concepts/friend-requests)。

1. 从项目中复制玩家 ID。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/player-id-screenshot.png)
2. 切换到项目的一个构建版本。
3. 选择 \*\*Add Friend（添加好友）\*\*按钮。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/add-friend-button-screenshot.png)
4. 将项目玩家的 ID 粘贴到 ID 字段中，然后选择 **Add（添加）**。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/add-friend-screenshot.png)
5. 返回 Unity 编辑器。
6. 选择 \*\*Friend Request List（好友请求列表）\*\*按钮。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/requests-list-screenshot.png)
7. **接受**或**忽略**来自 Build Player 的好友请求。

### 屏蔽玩家##block-a-player

如果玩家已将您屏蔽，他们会对您显示为离线状态。如果您屏蔽了玩家，他们将出现在您的屏蔽列表中。

[屏蔽](../concepts/block-list)其他玩家的方法有两种：从您的[好友列表](../concepts/friends-list)和好友请求收件箱中屏蔽。

从好友列表中屏蔽玩家：

1. 选择 \*\*Friend List（好友列表）\*\*按钮。
2. 选择要屏蔽的玩家名称旁边的 **Block（屏蔽）**(**-**) 按钮。

屏蔽向您发送了好友请求的玩家：

1. 选择 \*\*Friend Request List（好友请求列表）\*\*按钮。
2. 选择要屏蔽的玩家名称旁边的 **Block（屏蔽）**(**-**) 按钮。

您可以在[屏蔽列表](../concepts/block-list)中查看和取消屏蔽已屏蔽的玩家。

### 取消屏蔽玩家##unblock-a-player

您可以[查看您的屏蔽列表](#view-your-block-list)，然后选择玩家名称旁边的 \*\*Unblock（取消屏蔽）\*\*按钮，从而取消屏蔽相应玩家。


**Frame:**
![](/api/media?file=/friends/media/images/unblock-screenshot.png)

### 移除好友##remove-a-friend

您可以在好友列表中选择相应玩家名称旁边的 \*\*Remove friend（移除好友）\*\*按钮来从您的[好友列表](../concepts/friends-list)中移除好友。

1. 选择 \*\*Friend List（好友列表）\*\*按钮。
2. 选择 \*\*Remove Friend（移除好友）\*\*按钮。

### 设置当前状态##set-your-presence-status

您可以选择当下状态旁边的向下箭头，然后选择新的状态，以此设置您的[当前状态](../concepts/presence)。例如，要将您的状态从“ONLINE”（在线）更改为“BUSY”（忙碌），请执行以下操作：

“INVISIBLE”（隐身）是一种特殊状态，会让您对所有好友显示为离线。

1. 选择“ONLINE”（在线）旁边的向下箭头。
2. 选择 **BUSY（忙碌）**。


**Frame:**
![](/api/media?file=/friends/media/images/set-presence-screenshot.png)

### 设置活动状态##set-your-activity-status

您可以选择**当前状态下拉菜单**右侧的文本来设置您的活动状态。例如，您可以根据玩家当前在玩游戏中的活动设置自定义状态。

1. 选择 \*\*In Friends Menu（在好友菜单中）\*\*文本。这是默认的活动状态
2. 键入新的消息，然后按 Enter 键。按 Enter 键后，您好友列表中的用户便可以看到更新后的活动状态。

> **Note:**
>
> **注意**：Friends 服务并不会在用户离线时自动保存当前状态或活动状态。要在重新登录时保持相同的当前状态或活动状态，请将当前状态或活动状态保存在本地或通过 [Cloud Save](/cloud-save/.md).等数据存储服务进行保存。

### 查看好友列表##view-your-friends-list

您可以选择 **Friends List（好友列表）** 按钮来查看您的[好友列表](../concepts/friends-list)。


**Frame:**
![](/api/media?file=/friends/media/images/friends-list-screenshot.png)

### 查看请求列表##view-your-request-list

您可以选择 **Request list（请求列表）** 按钮来查看您的[好友请求](../concepts/friend-requests)。


**Frame:**
![](/api/media?file=/friends/media/images/requests-list-screenshot.png)

### 查看屏蔽列表##view-your-block-list

您可以选择 \*\*Block list（屏蔽列表）\*\*按钮来查看您的[屏蔽列表](../concepts/block-list)。


**Frame:**
![](/api/media?file=/friends/media/images/block-list-screenshot.png)
