다음을 통해 공유


PFMultiplayerCreateMatchmakingTicket

한 명 이상의 로컬 사용자에 대한 매치 메이킹 티켓을 만듭니다.

구문

HRESULT PFMultiplayerCreateMatchmakingTicket(  
    PFMultiplayerHandle handle,  
    uint32_t localUserCount,  
    const PFEntityKey* localUsers,  
    const char* const* localUserAttributes,  
    const PFMatchmakingTicketConfiguration* configuration,  
    void* asyncContext,  
    PFMatchmakingTicketHandle* ticket  
)  

매개 변수

handle PFMultiplayerHandle

PFMultiplayer API 인스턴스의 핸들입니다.

localUserCount uint32_t

티켓에 포함할 로컬 사용자 수입니다.

localUsersPFEntityKey*
크기의 입력 배열localUserCount

티켓에 포함할 로컬 사용자의 배열입니다.

localUserAttributes char* const*
크기의 입력 배열localUserCount

로컬 사용자 특성 문자열의 배열입니다. 각 로컬 사용자에 대해 하나의 특성 문자열이 있어야 합니다. 각 특성 문자열은 빈 문자열이거나 직렬화된 JSON 개체여야 합니다. 예를 들면 {"player_color":"blue","player_role":"tank"} 같은 식입니다.

configurationPFMatchmakingTicketConfiguration*

티켓 구성입니다.

asyncContext void*
선택 사항

완료 상태 변경을 이 호출과 연결하는 데 사용할 수 있는 선택적 앱 정의 포인터 크기의 컨텍스트 값입니다.

ticket PFMatchmakingTicketHandle*
라이브러리 할당 출력

결과 티켓 개체입니다.

반환 값

형식: HRESULT

호출이 성공한 경우 S_OK이고 그렇지 않은 경우 오류 코드입니다. 사람이 읽을 수 있는 형식의 오류 코드는 PFMultiplayerGetErrorMessage()를 통해 검색할 수 있습니다.

비고

라이브러리는 티켓에 지정된 모든 로컬 사용자를 자동으로 비동기적으로 매치 메이킹 서비스에 제출합니다. 티켓 상태가 변경될 때마다 PFMatchmakingTicketStatusChangedStateChange가 제공됩니다. 티켓 상태는 PFMatchmakingTicketGetStatus()를 통해 언제든지 쿼리할 수 있습니다. 티켓은 PFMatchmakingTicketStatus::Creating 상태에서 즉시 시작됩니다.

티켓이 완료되면 PFMatchmakingTicketStatusChangedStateChange가 제공됩니다. 이때 일치 항목이 발견되었거나 실패로 인해 티켓이 중지되었습니다. 성공하면 찾은 일치 항목을 PFMatchmakingTicketGetMatch()를 통해 쿼리할 수 있습니다.

지정된 사용자에 대한 티켓이 이미 너무 많아 티켓 만들기에 실패하는 경우 라이브러리는 해당 미해결 티켓을 투명하게 취소한 다음 티켓 만들기를 다시 시도합니다.

configuration 매개 변수의 membersToMatchWith 필드에 지정된 모든 원격 사용자가 PFMultiplayerJoinMatchmakingTicketFromId()를 통해 티켓에 가입할 때까지 일치 항목을 찾을 수 없습니다.

요구 사항

헤더: PFMatchmaking.h

참고 항목

PFMatchmaking 멤버