Defold 项目设置
操作系统:本指南针对 Windows 10 编写。在 Mac 上也应能正常使用。- 在 https://www.defold.com/ 创建帐户并下载 Defold,或登录(使用 Google O-Auth):https://d.defold.com/stable/。
- 如果你还未完成 Defold “Getting Started Tutorial”,请先完成该教程。
- 在 Defold Dashboard 上创建一个新项目,如下图所示。
- 运行 Defold 并加载新项目。你应看到若干窗口,类似下面的示例。
- 更新项目设置,并将 PlayFab 加入依赖项: https://github.com/PlayFab/LuaSdk/raw/master/Defold/PlayFabClientSdk.zip
- 选择:Project -> Fetch Libraries,你应看到一个新的内置 PlayFab 文件夹,如下所示。
-
创建几个文件:
- main/PfGettingStarted.gui
- 选择 “main” 文件夹 -> new -> Gui File -> PfGettingStarted.gui。
- main/PfGettingStarted.gui_script
- 选择 “main” 文件夹 -> new -> Gui Script File -> PfGettingStarted.gui_script。
-
在 main.collection 中挂载新的 GUI。
- 选择 main.collection 以打开它。
-
在 Outline 面板中:
- 选择 Add Game Object(可选,将其重命名为 PfGui)。
- 选择新对象,Add Component From File…
- PfGettingStarted.gui(如上创建)。
- 选择新对象,Add Component From File…
- 选择 Add Game Object(可选,将其重命名为 PfGui)。
- 查看 main.collection 时,Outline 面板应类似下面的示例。
设置第一次 API 调用
本指南将提供发出第一次 PlayFab API 调用的最少步骤。确认信息将显示在游戏窗口中。- 在 Defold 编辑器中,双击 PfGettingStarted.gui_script。
- 这将打开文件进行文本编辑。
- 按下面所示更新 PfGettingStarted.gui_script 的内容。
要查找此示例中 loginRequest 对象的正确格式,请参阅 LoginWithCustomID 的 API 参考。
-
在 Defold 编辑器中,右键单击 PfGettingStarted.gui -> Open With -> Text Editor。遗憾的是,这会改变 Defold 的一个内部设置,所以:
- 再次打开它:右键单击 PfGettingStarted.gui -> Open With -> GUI Editor。这会将默认设置重置为正常状态。
- 选择 PfGettingStarted.gui 的文本编辑选项卡。
- 按下面所示更新 PfGettingStarted.gui 的文本内容。
完成并执行
首先,确保一切都已保存,并选择另一个选项卡。然后查找 ” * ” 标记——有时 Defold 不会刷新。 然后,构建你的游戏(Ctrl+b 或下拉菜单:Project -> Build and Launch)。你应在屏幕上看到以下文本: “Congratulations, you made your first successful API call!” 有关所有可用客户端 API 调用的列表,请参阅我们的 PlayFab API 参考 文档。 祝你编码愉快!代码解析
-
PfGettingStarted.gui- 我们对
PfGettingStarted.gui的说明只是为了简便,并非用于教学。此文件是一个 GUI 定义,它向屏幕添加一个文本框,并将其绑定到另一个脚本:PfGettingStarted.gui_script。通常你不会以文本形式编辑这些文件。 - 如需构建 Defold GUI 小部件的正确说明,请阅读此指南:
- Defold 中的 GUI 场景
- 我们对
-
PfGettingStarted.gui_script-
Require 语句及设置。
PlayFabClientApi允许你进行客户端 API 调用——这就是你在这里的原因。- IPlayFabHttps 和 PlayFabHttps_Defold:
- PlayFab Defold 插件基于 PlayFab LuaSdk 构建。Lua 语言没有正式的 HTTPS 模块。每个使用 Lua 的游戏引擎都自行实现。这两个变量告诉 PlayFabSdk 如何访问 HTTPS。你只需在项目中的第一个场景中执行一次。否则这只是必需的模板代码。
-
PlayFabClientApi.settings.titleId = "144"- 每个使用 PlayFab 的项目都应在 PlayFab 网站(我们称之为 Game Manager)上创建一个唯一的标题。在 Game Manager 中找到你的
titleId,并将144替换为你的titleId。
- 每个使用 PlayFab 的项目都应在 PlayFab 网站(我们称之为 Game Manager)上创建一个唯一的标题。在 Game Manager 中找到你的
-
function init(self)- Defold 函数——在 GUI 初始化时调用。
-
local loginRequest = { TitleId = PlayFabClientApi.settings.titleId, CustomId = "GettingStartedGuide", CreateAccount = true }- 大多数 PlayFab API 方法需要输入参数,这些输入参数被打包到请求对象中
- 每个 API 方法都需要一个唯一的请求对象,其中包含可选和必需参数的组合
- 对于
LoginWithCustomIDRequest,有一个必需参数CustomId(唯一标识玩家)和CreateAccount(允许此调用创建新帐户)。
- 对于
- 对于登录,大多数开发者会希望使用更适合的登录方法
- 请参阅 PlayFab 登录文档 了解所有登录方法及输入参数的列表。常见选择包括:
-
PlayFabClientApi.LoginWithCustomID(loginRequest, OnLoginSuccess, OnLoginFailed)- 这会使用请求执行 API 调用,并提供成功和失败情况的回调函数。
-
function OnLoginSuccess(result)- 许多 API 成功回调的 result 对象将包含所请求的信息。
LoginResult包含关于玩家的一些基本信息,但对大多数用户而言,登录只是调用其他 API 之前的必需步骤。
-
function OnLoginFailed(error)- API 调用可能因多种原因失败,你应始终尝试处理失败情况。
-
API 调用失败的原因(按可能性排序)
- 未设置 PlayFabSettings.TitleId。如果忘记将 titleId 设为你的标题,则任何操作都无法运行。
-
请求参数。如果你没有为特定 API 调用提供正确或必需的信息,则调用将失败。请查看
error.errorMessage、error.errorDetails或error.GenerateErrorReport()获取更多信息。 - 设备连接问题。手机连续地失去/重连网络,因此任何时候的任何 API 调用都可能随机失败,随后又立即成功。进入隧道可能会让你完全断开连接。
- PlayFab 服务器问题。与所有软件一样,可能会出现问题。请参阅我们的 发行说明 获取更新。
- 互联网并非 100% 可靠。有时消息会损坏或无法到达 PlayFab 服务器。
- 如果你在调试问题时遇到困难,且错误信息中的内容不够充分,请访问我们的 论坛
-
local pfTestOutput = gui.get_node("pfOutput")- 这是另一个 Defold GUI 函数。它获取在 PfGettingStarted.gui 文件中定义的
pfOutputGUI 对象,并为其赋予要显示给用户的文本。
- 这是另一个 Defold GUI 函数。它获取在 PfGettingStarted.gui 文件中定义的
-
Require 语句及设置。
