适用于 Corona 的 Lua 快速入门

本快速入门帮助你在 Corona 引擎中进行首次 PlayFab API 调用。

必须有 PlayFab 开发者帐户才能调用 PlayFab API。

Corona 项目设置

操作系统:本快速入门适用于 Windows 10。 不过,它也应该适用于 Mac。

  1. 下载并安装 Corona:https://coronalabs.com/

  2. 运行 Corona,并创建新项目。 如果还没有完成首次步骤,以下链接提供的信息可以帮助完成这些步骤:https://docs.coronalabs.com/guide/start/installWin/index.html

  3. 安装、登录并创建新项目后,可以看到几个窗口,类似于下面的示例。

    安装 PlayFab SDK

  4. 在 Corona 卖场上激活 PlayFab 客户端插件:

    https://marketplace.coronalabs.com/plugin/playfab-client

  5. PlayFab 安装已完成!

设置首次 API 调用

本指南提供进行首次 PlayFab API 调用的最少步骤。 确认会在 Corona 引擎输出日志中显示。

在常用文本编辑器中,将以下行添加build.settings

settings =
{
    -- ADD THESE THREE LINES at the top, leave everything else as-is
    plugins = {
        ["plugin.playfab.client"] = { publisherId = "com.playfab" }
    },

-- Other existing lines...
}

注意

要查找该示例中 loginRequest 对象的正确格式,请参阅 LoginWithCustomID 的 API 参考。

在常用文本编辑器中,将 main.lua 文件内容替换为以下显示的内容。

local pfClient = require("plugin.playfab.client")
local PlayFabClientApi = pfClient.PlayFabClientApi
PlayFabClientApi.settings.titleId = "144"

local loginRequest = {
    -- See the API reference for LoginWithCustomID.
    CustomId = "GettingStartedGuide",
    CreateAccount = true
}
PlayFabClientApi.LoginWithCustomID(loginRequest,
    function(result) print("Congratulations, you made your first successful API call!") end,
    function(error) print("Something went wrong with your first API call.\nHere's some debug information:\n" .. error.errorMessage) end
)

完成并执行

Corona 会在保存时立即自动执行项目源。 因此,更新并保存这两个文件后,你应该会看到:

下载 Corona 插件 - 完成并执行

此时,可以开始进行其他 API 调用并构建游戏。 有关所有可用客户端 API 调用的列表,请参阅我们的 PlayFab API 引用文档。

编码愉快!

解析此代码

这个可选的最后一部分逐行介绍了上面的示例。

  • build.settings
    • plugins = {
      • 这会调用 Corona 插件系统,指示下载 Corona 卖场插件并安装在项目中
    • ["plugin.playfab.client"] = { publisherId = "com.playfab" }
      • 这会指示专门下载 PlayFab 客户端插件。
  • main.lua
    • require() lines:
      • 这是进行 PlayFab API 调用所需的最小导入。
    • PlayFabClientApi.settings.titleId = "xxxx"
      • 每个 PlayFab 开发者都在 Game Manager 中创建游戏。 发布游戏时,必须将 titleId 编码到游戏中。 这样客户端知道如何在 PlayFab 中访问正确数据。 对于大多数用户而言,只需将其视为使 PlayFab 正常工作的必要步骤。
    • local loginRequest = { CustomId = "GettingStartedGuide", CreateAccount = true }
      • 大多数 PlayFab API 方法需要输入参数,而这些输入参数已打包到请求对象中
      • 每个 API 方法都需要唯一请求对象,并且同时具有可选参数和强制参数
        • 对于 LoginWithCustomIDRequest,存在唯一标识玩家的 CustomId 的强制参数,以及允许使用此调用创建新帐户的 CreateAccount
    • PlayFabClientApi.LoginWithCustomID(loginRequest, {OnLoginSuccess-function}, {OnLoginError-function})
      • 这会开始对 LoginWithCustomID 的异步请求,该请求会在成功时调用第一个 (OnLoginSuccess) 回调,或是在失败时调用第二个 (OnLoginError) 函数。
    • 对于登录,大多数开发者都希望使用更合适的登录方法。
      • 有关所有登录方法的列表和输入参数,请参阅 PlayFab 登录文档。 常用选项为:
      • OnLoginSuccess 是接受单个参数(结果)的任何函数。
        • 根据所调用的 API,结果对象将包含所请求的信息。
        • LoginResult 包含有关玩家的一些基本信息,但对于大多数用户而言,登录只是在调用其他 API 之前的必要步骤。
      • OnLoginError 是接受单个参数(错误)的任何函数。
        • API 调用可能由于多种原因而失败,应始终尝试处理失败。
        • 为什么 API 调用失败(按可能性顺序):
          • 未设置 PlayFabSettings.TitleId。 如果忘记将 titleId 设置为游戏,则不会进行任何操作。
          • 请求参数。 如果未为特定 API 调用提供正确或必需的信息,则调用将失败。 有关详细信息,请参阅 error.errorMessageerror.errorDetailserror.GenerateErrorReport()
          • 设备连接问题。 手机不断失去/恢复连接,因此任何 API 调用在任何时候都可能随机失败,然后立即恢复运行。 进入隧道将完全断开连接。
          • PlayFab 服务器问题。 与所有软件一样,可能存在问题。 有关更新,请参阅我们的发行说明
          • 互联网并非 100% 可靠。 有时消息已受损或无法到达 PlayFab 服务器。
        • 如果在调试问题时遇到困难,并且错误信息中的信息不充分,请访问我们的论坛