语法
参数
handle PFMultiplayerHandle
PFMultiplayer API 实例的句柄。
localUserCount uint32_t
要包含在票证中的本地用户数量。
localUsers PFEntityKey*大小为
localUserCount 的输入数组
要包含在票证中的本地用户数组。
localUserAttributes char* const*大小为
localUserCount 的输入数组
本地用户属性字符串数组。每个本地用户应有一个属性字符串。每个属性字符串应为空字符串或已序列化的 JSON 对象。例如 {"player_color":"blue","player_role":"tank"}。
configuration PFMatchmakingTicketConfiguration*
票证配置。
asyncContext void*optional 可选的应用定义指针大小上下文值,可用于将完成状态变更与此调用相关联。
ticket PFMatchmakingTicketHandle*library-allocated output 生成的票证对象。
返回值
类型:HRESULT 如果调用成功,则为S_OK;否则为错误代码。可以通过 PFMultiplayerGetErrorMessage() 获取错误代码的人类可读形式。
备注
库将自动且异步地把票证上指定的所有本地用户提交到匹配服务。每次票证状态更改时,都会提供一个 PFMatchmakingTicketStatusChangedStateChange。可以随时通过 PFMatchmakingTicketGetStatus() 查询票证状态。票证立即从PFMatchmakingTicketStatus::Creating 状态开始。当票证完成时,将提供一个 PFMatchmakingTicketStatusChangedStateChange。此时,要么找到匹配,要么票证因失败而停止。成功时,可以通过 PFMatchmakingTicketGetMatch() 查询找到的匹配。
如果票证创建失败是因为指定用户的票证过多,库将透明地取消这些未完成的票证,然后重试票证创建。
直到
configuration 参数的 membersToMatchWith 字段中指定的所有远程用户都通过 PFMultiplayerJoinMatchmakingTicketFromId() 加入票证,才能找到匹配。
