快速入门:PlayFab Party Unity 插件
本快速入门帮助你安装适用于 Unity 的 Party SDK,并进行首次 API 调用,以将玩家加入 Party 网络。在继续之前,请确保已从你的 PlayFab 账户完成通过 Game Manager 启用 Party 功能。如果你打算使用此插件基于 Microsoft Game Development Kit (GDK) 开发游戏,需要单独获取并安装 GDK。此外,还请查看 XBOX 主机 Game Core 上 Unity 插件的详细信息。
要求
- 一个 PlayFab 开发者账户。
- 已安装的 Unity 编辑器副本。若要通过 Unity Hub 安装个人使用的 Unity,或安装用于专业用途的 Unity+,请参阅下载 Unity。如有必要,请查看你所用特定平台文档中的 Unity 支持情况。支持的最低 Unity 版本为 Unity 2017 LTS。
-
一个 Unity 项目,可以是以下任一选项:
- 全新项目:有关详情,请参阅首次启动 Unity。
- 分步教程项目。有关详情,请参阅 Getting Started with Unity。
- 现有项目。
- PlayFab“核心”Unity3D SDK。有关安装 Unity3D SDK 的信息,请参阅 Unity 中 C# 的 PlayFab 客户端库快速入门的“下载并安装 PlayFab SDK”部分。
下载并安装 PlayFab Party Unity 插件
按照以下步骤下载并安装 PlayFab Party Unity 插件。- 下载 PlayFab Party Unity 插件 Asset 包(根据你的平台使用相应的分发点)。
- 重要! 请查看随插件一起发布的 README 文件中的信息。它针对每个特定版本进行了定制,可能包含特定于你平台的重要说明。
- 打开你的 Unity 项目。
- 导航到你保存 .unitypackage 的位置,然后双击它以打开导入对话框。
- 若要将 PlayFab Party Unity 插件导入到你的项目中,选择 Import。
设置场景
本部分指南将展示如何将PlayFabMultiplayerManager 添加到你的场景中,以便你可以从 Unity 调用 PlayFab Party API。
在创建网络之前,你必须让 PlayFab 玩家登录。有关玩家登录的信息,请参阅 Unity 中 C# 的 PlayFab 客户端库快速入门中的进行首次 API 调用。
- 在 Unity 编辑器的 Project 窗口中,导航到 Assets > PlayFabPartySDK > Prefabs。
- 从 Prefabs 文件夹中,将 PlayFabMultiplayerManager 拖放到 Hierarchy 窗口中的场景内。
- 在场景中创建一个名为“HelloPartyLogic”的空 Game Object。
- 选择 HelloPartyLogic Game Object 以打开 Inspector。
- 选择 Add Component。
- 键入“HelloPartyLogic”并按回车键以显示新建脚本菜单。
- 再次按回车键创建新脚本 HelloPartyLogic.cs。
- 在 Project 窗口中找到该脚本并双击以编辑脚本。
-
将以下 using 语句添加到你的脚本中:
-
在 Start 方法中添加以下代码以登录 PlayFab。
-
将以下方法添加到该类中。
你可能会收到以下错误:
Error CS0227 Unsafe code may only appear if compiling with /unsafe The plugin requires unsafe code because it interops with a native DLL. Mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "XGamingRuntime", "AMD64".- 在 Unity 编辑器中,选择 File > Build Settings.
- 选择你的平台。然后从 Architecture 下拉列表中选择 x86_64 或 x64。
- 选择 Player Settings.
- 在右侧窗格中,选择 Other Setting。
- 找到 Allow unsafe Code 设置并选中它。
- 关闭 Build Settings 和 Project Settings 窗口。
连接到网络
本部分指南将展示如何创建和加入网络。-
打开 HelloPartyLogic.cs 脚本。在
OnLoginSuccess方法中,添加以下代码以创建并加入网络: -
若要定义 OnNetworkJoined 事件处理程序,将以下代码添加到该类:
- 保存并在 Unity 编辑器中选择 Play。Network ID 将显示在 Console 窗口中。
加入现有网络
本部分指南将展示如何加入其他客户端创建的现有网络。-
打开 HelloPartyLogic.cs 脚本。在 OnLoginSuccess 方法中,添加以下代码以加入网络:
-
若要定义在本地客户端加入网络时触发的事件,将以下代码添加到
OnLoginSuccess方法: -
若要定义 OnNetworkJoined 事件处理程序,将以下代码添加到该类:
有很多方法可以将 Network ID 从主机传给想要加入的其他玩家。请参考此 Unity 插件中的示例了解实现方式的一个示例。
- 保存并在 Unity 编辑器中选择 Play。字符串“Network joined!”将显示在 Console 窗口中。
访问其他玩家
本部分指南将展示如何访问网络上的其他玩家,包括本地玩家。 若要监听有新玩家加入和离开网络,请注册 OnRemotePlayerJoined 和 OnRemotePlayerLeft 事件。-
打开 HelloPartyLogic.cs 脚本。在 OnLoginSuccess 方法中,添加以下代码以创建并加入网络:
-
将以下方法添加到该类:
-
若要访问本地玩家,将以下代码添加到 OnRemotePlayerJoined 方法:
发送和接收数据消息
本部分指南将展示如何发送和接收数据消息。在开始发送和接收数据消息之前,你必须先加入网络。-
打开 HelloPartyLogic.cs 脚本。在 OnLoginSuccess 方法中,添加以下代码以监听数据消息:
-
将
OnDataMessageRecieved事件处理程序添加到该类: -
若要发送数据消息,将以下代码添加到 Update 方法:
- 在第二个客户端中,重复连接到网络中的步骤以创建并加入网络。
- 复制返回到第一个客户端的 Network ID 并连接到该网络。
- 在场景上选择以发送消息。“Hello (data message)”将显示在 Console 窗口中。
发送和接收聊天消息
本部分指南将展示如何发送和接收聊天消息以及对远程玩家进行静音。除文本聊天外,Party 还会在玩家之间自动启用语音聊天。 在开始发送和接收聊天消息之前,你必须先加入网络。-
打开 HelloPartyLogic.cs 脚本。在 OnLoginSuccess 方法中,添加以下代码以监听聊天消息:
-
将事件处理程序
OnChatMessageReceived添加到该类:
- 在第二个客户端中,重复连接到网络中的步骤以创建并加入网络。
- 复制返回到第一个客户端的 Network ID 并连接到该网络。
- 当你在场景中选择时,会发送一条消息并显示在 Console 窗口中。
-
如果你希望玩家能够选择对其他玩家静音,请将 IsMuted 属性设置为 true。
使用自定义对等连接配置选项连接到网络
本部分指南将展示如何使用自定义对等连接配置选项创建和加入网络。默认选项是 P2P,但用户可以使用以下标志的任意组合修改此选项:DirectPeerConnectivityOptions。此示例展示了如何设置 P2P:-
打开 HelloPartyLogic.cs 脚本。在
OnLoginSuccess方法中,添加以下代码以创建并加入网络:
