초대 전송
이 항목을 사용하여 Xbox 서비스에서 사용자 대 사용자 멀티 플레이어 게임 세션을 구성할 수 있습니다.
게임에서 다른 사용자에게 게임 세션 참가 초대를 보냅니다. 두 가지 방법으로 게임 초대를 다른 사용자에게 보낼 수 있습니다. 타이틀 호출용 UI(TCUI)(시스템 UI 오버레이)를 사용하거나 타이틀 구현 사용자 지정 UI를 사용할 수 있습니다.
타이틀 호출용 UI(TCUI)(시스템 UI 오버레이) 사용
XGameUiShowSendGameInviteAsync API를 호출하면 친구 초대용 표준 시스템 UI 오버레이를 가져옵니다. 그러면 사용자가 최근 플레이어 목록에서 게임에 초대할 친구 또는 사용자를 선택하도록 이동할 수 있는 UI가 표시됩니다. 사용자가 확인을 선택하면 선택된 사용자에게 초대가 전송됩니다.
타이틀에서 구현되는 사용자 지정 UI 사용
타이틀은 사용자 지정 UI를 구현해 온라인 친구를 보고 게임 세션에 초대할 수 있습니다. 다음 코드와 같이 XblMultiplayerSendInvitesAsync API를 사용하여 XboxUserId(XUID)에서 정의된 사용자 집합에 초대를 보냅니다. 이 방법은 스톡 시스템 UI 대신 자체 게임 내 UI를 사용하고 싶을 때 유용합니다.
기본 C
auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock }; // Take ownership of the XAsyncBlock*
size_t handlesCount = 1; // must be equal to invites that are requested
XblMultiplayerInviteHandle handles[1] = {};
HRESULT hr = XblMultiplayerSendInvitesResult(asyncBlock, handlesCount, handles);
};
uint64_t xuids[1] = {};
xuids[0] = targetXuid;
size_t xuidsCount = 1;
HRESULT hr = XblMultiplayerSendInvitesAsync(
xblContextHandle,
&sessionReference,
xuids,
xuidsCount,
titleId,
contextStringId,
customActivationContext,
asyncBlock.get());
if (SUCCEEDED(hr))
{
// The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* since the callback will take ownership.
// If the call fails, the std::unique_ptr will keep ownership and delete the XAsyncBlock*
asyncBlock.release();
}
참고 항목
XAsyncBlock
XblMultiplayerInviteHandle
XblMultiplayerSendInvitesAsync
XblMultiplayerSendInvitesResult
XGameInvite(API 참조)
멀티 플레이어 관리자를 사용하여 프로토콜 정품 인증을 처리하고 게임 시작
멀티 플레이어 관리자를 사용하여 게임 초대 보내기