使用本主题了解如何使用 API 包装器通过托管代码正确调用 Microsoft 游戏开发工具包 (GDK) 和 Xbox 服务 API。
访问 Microsoft Game Development Kit (GDK) API
从 Unity 导入 Microsoft GDK API 包后,其功能可在 XGamingRuntime 命名空间下使用。 所有游戏运行时 API 都可通过 SDK 类上的静态方法获得。 所有 Xbox 服务 API 都可通过 SDK 上的静态方法获得。XBL 类。 以下示例显示了此可用性。
using System;
// The namespace under which the "GDK" functionality is available.
using XGamingRuntime;
namespace TestGame
{
static class Program
{
static void Main()
{
// All APIs are accessed through static methods on the SDK class.
Int32 hr = SDK.XGameRuntimeInitialize();
// All Xbox services APIs are accessed through static methods on the SDK.XBL class.
Int32 hr = SDK.XBL.XblInitialize(SCID);
...
}
}
}
API 覆盖和约定
注意
并非每个 API 都可通过程序包来使用。 有关这些 API 的完整列表,请参阅本主题后面的 Microsoft 游戏开发工具包 (GDK) 和 Xbox 服务 API 列表。
约定:
- API 名称尽可能与其 GDK 对应项匹配。
- 无例外情况。 错误通过 HRESULT 进行通信。
- 不带面向对象封装的平面 API 图面。
- out 参数用于设置参数的 API。
- 异步方法使用回调。 有关详细信息,请参阅后面的部分。
异步编程模型
大多数异步 API 采用回调作为其最后一个参数。 示例如下所示。
using System;
using XGamingRuntime;
class SignInManager
{
public void AddUser()
{
SDK.XUserAddAsync(XUserAddOptions.None, this.OnUserAddComplete);
}
private void OnUserAddComplete(Int32 hresult, XUserHandle userHandle)
{
// Check the result, and then do something with the handle.
}
}
有关线程模型的信息如下所示。
- 异步方法将立即执行,工作将在线程池中的可用线程上执行。
- 调用 SDK 后,线程池在内部初始化。XGameRuntimeInitialize () 。
- 未公开任何线程池配置选项。
- 调用调度后调用结果回调, (即 SDK。XTaskQueueDispatch () ) 。 因此,请务必在游戏更新循环期间 频繁调用调度(理想情况下)。
- 结果回调在调用调度的线程上执行。
本机 API 和托管包装器之间的差异示例
本机 API 和托管包装器之间存在细微的差异。 为了参考,以下两个示例演示了托管和本机代码中的 XUserAddAsync 和 XblAchievementsUpdateAchievementAsync 的签名和调用函数。
XUserAddAsync 示例
XUserAddAsync 的本机签名如下所示。
STDAPI XUserAddAsync(
_In_ XUserAddOptions options,
_Inout_ XAsyncBlock* async
) noexcept;
STDAPI XUserAddResult(
_Inout_ XAsyncBlock* async,
_Out_ XUserHandle* newUser
) noexcept;
XUserAddAsync 的托管签名如下:
public static void XGamingRuntime.SDK.XUserAddAsync(
XUserAddOptions options,
XUserAddCompleted completionRoutine
);
public delegate void XUserAddCompleted(Int32 hresult, XUserHandle userHandle);
有关如何在本机代码中调用 XUserAddAsync 函数的示例如下所示。
auto asyncBlock = std::make_unique<XAsyncBlock>();
ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
asyncBlock->queue = _queue;
asyncBlock->context = this;
asyncBlock->callback = [](XAsyncBlock* ab)
{
auto asyncBlock = std::unique_ptr<XAsyncBlock>(ab);
XUserHandle user;
RETURN_IF_FAILED(XUserAddResult(ab, &user));
};
if (SUCCEEDED_LOG(XUserAddAsync(
XUserAddOptions::AddDefaultUserAllowingUI,
asyncBlock.get())))
{
// The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* because the callback will take over ownership.
// If the call fails, the std::unique_ptr will keep ownership and delete the XAsyncBlock*
asyncBlock.release();
}
调用 XUserAddAsync 函数的托管示例如下:
Managed add user
SDK.XUserAddAsync(
XUserAddOptions.AddDefaultUserAllowingUI,
(hr, userHandle) =>
{
LOG("XUserAddAsync", hr);
if (hr >= 0)
{
this.userHandle = userHandle;
// Sign-in succeeded.
}
else
{
// Sign-in failed.
}
}
);
如果用户希望使用自定义队列,或者 API 不包含回调实现,则以下示例演示了如何创建 XAsyncBlock。 用户还必须确保队列的正确调度和完成。 有关详细信息 ,请访问 XTaskQueue 库概述 。
XAsyncBlock xAsyncBlock = new XAsyncBlock(queue, (_async) =>
{
XUserHandle userHandle;
int hr = SDK.XUserAddResult(_async, out userHandle);
if (hr >= 0)
{
this.userHandle = userHandle;
// Sign-in succeeded.
}
else
{
// Sign-in failed.
}
}, IntPtr.Zero);
SDK.XUserAddAsync(XUserAddOptions.AddDefaultUserAllowingUI, xAsyncBlock);
XblAchievementsUpdateAchievementAsync example
XblAchievementsUpdateAchievementAsync 的本机签名如下所示。
STDAPI XblAchievementsUpdateAchievementAsync(
_In_ XblContextHandle xboxLiveContext,
_In_ uint64_t xboxUserId,
_In_z_ const char* achievementId,
_In_ uint32_t percentComplete,
_In_ XAsyncBlock* async
) XBL_NOEXCEPT;
XblAchievementsUpdateAchievementAsync 的托管签名如下:
public static void XGamingRuntime.SDK.XBL.XblAchievementsUpdateAchievementAsync(
XblContextHandle xboxLiveContext,
UInt64 xboxUserId,
string achievementId,
UInt32 percentComplete,
XblAchievementsUpdateAchievementResult completionRoutine);
public delegate void XblAchievementsUpdateAchievementResult(Int32 hresult);
如何在本机代码中调用 XblAchievementsUpdateAchievementAsync 的函数的示例如下。
auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = Data()->queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock }; // Take over ownership of the XAsyncBlock*
auto result = XAsyncGetStatus(asyncBlock, false);
if (SUCCEEDED(result))
{
// Achievement updated.
}
else if (result == HTTP_E_STATUS_NOT_MODIFIED)
{
// Achievement isn't modified.
}
else
{
// Achievement failed to update.
}
};
HRESULT hr = XblAchievementsUpdateAchievementAsync(
Data()->xboxLiveContext,
Data()->xboxUserId,
achievementId.c_str(),
percentComplete,
asyncBlock.get()
);
if (SUCCEEDED(hr))
{
// The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* because the callback will take over ownership.
// If the call fails, the std::unique_ptr will keep ownership and delete the XAsyn-cBlock*
asyncBlock.release();
}
调用 XblAchievementsUpdateAchievementAsync 函数的托管示例如下:
SDK.XBL.XblAchievementsUpdateAchievementAsync(
xblContextHandle,
xboxUserId,
achievementId,
percentComplete
(achievementUpdateResult) => {
LOG("XblAchievementsUpdateAchievementAsync result", achievementUpdateResult);
if (achievementUpdateResult == 0)
{
// Achievement updated.
}
else if (achievementUpdateResult == HTTP_E_STATUS_NOT_MODIFIED) // 0x80190130
{
// Achievement isn't modified.
}
else
{
// Achievement failed to update.
}
}
);
在托管代码中初始化 Xbox 服务 API (XSAPI)
作为参考,以下是托管代码中 XSAPI 的初始化。 下面是托管代码中的 XSAPI 签名。
public static Int32 XGamingRuntime.SDK.XBL.XblInitialize(string scid)
下面是托管代码中的 XSAPI 调用模式的示例。
Int32 hresult = SDK.XBL.XblInitialize(SCID);
托管包装器中的 Microsoft 游戏开发工具包 (GDK) API 列表
以下 Microsoft 游戏开发工具包 (GDK) API 包含在 GDK Unity 程序包中的托管包装器中。 有关 Microsoft 游戏开发工具包 (GDK) API 的详细信息,请参阅系统 API 参考。
-
XAccessibility
- XClosedCaptionGetProperties
- XClosedCaptionSetEnabled
- XHighContrastGetMode
- XSpeechToTextSendString
- XSpeechToTextSetPositionHint
- XSpeechToTextBeginHypothesisString
- XSpeechToTextUpdateHypothesisString
- XSpeechToTextFinalizeHypothesisString
- XSpeechToTextCancelHypothesisString
-
XAppCapture
- XAppBroadcastGetStatus
- XAppBroadcastIsAppBroadcasting
- XAppBroadcastShowUI
- XAppBroadcastRegisterIsAppBroadcastingChanged
- XAppCaptureCloseLocalStream
- XAppCaptureCloseScreenshotStream
- XAppCaptureEnableRecord
- XAppCaptureDisableRecord
- XAppBroadcastUnregisterIsAppBroadcastingChanged
- XAppCaptureMetadataAddStringEvent
- XAppCaptureMetadataAddInt32Event
- XAppCaptureMetadataAddDoubleEvent
- XAppCaptureMetadataStartStringState
- XAppCaptureMetadataStartInt32State
- XAppCaptureMetadataStartDoubleState
- XAppCaptureMetadataStopState
- XAppCaptureMetadataStopAllStates
- XAppCaptureMetadataRemainingStorageBytesAvailable
- XAppCaptureOpenScreenshotStream
- XAppCaptureReadScreenshotStream
- XAppCaptureRecordDiagnosticClip
- XAppCaptureTakeDiagnosticScreenshot
- XAppCaptureTakeScreenshot
- XAppCaptureRegisterMetadataPurged
- XAppCaptureUnRegisterMetadataPurged
- XAppCaptureReadLocalStream
- XAppCaptureRecordTimespan
- XAppCaptureGetVideoCaptureSettings
-
XAsync
- XAsyncGetStatus
- XAsyncGetResultSize
- XAsyncCancel
- XAsyncRun
-
XDisplay
- XDisplayTryEnableHdrMode
- XDisplayAcquireTimeoutDeferral
- XDisplayCloseTimeoutDeferralHandle
-
XError
- XErrorSetCallback
- XErrorSetOptions
-
XGameEvent
- XGameEventWrite
-
XGame
- XGameGetXboxTitleId
- XLaunchNewGame
- XLaunchRestartOnCrash
-
XGameInvite
- XGameInviteRegisterForEvent
- XGameInviteUnregisterForEvent
-
XGameProtocol
- XGameProtocolRegisterForActivation
- XGameProtocolUnregisterForActivation
-
XGameRuntimeFeature
- XGameRuntimeIsFeatureAvailable
-
XGameRuntimeInit
- XGameRuntimeInitialize
- XGameRuntimeUninitialize
-
XGameSave
- XGameSaveInitializeProvider
- XGameSaveInitializeProviderAsync
- XGameSaveInitializeProviderResult
- XGameSaveCloseProvider
- XGameSaveGetRemainingQuota
- XGameSaveGetRemainingQuotaAsync
- XGameSaveGetRemainingQuotaResult
- XGameSaveDeleteContainer
- XGameSaveDeleteContainerAsync
- XGameSaveDeleteContainerResult
- XGameSaveCreateContainer
- XGameSaveCloseContainer
- XGameSaveGetContainerInfo
- XGameSaveEnumerateContainerInfo
- XGameSaveEnumerateContainerInfoByName
- XGameSaveEnumerateBlobInfo
- XGameSaveEnumerateBlobInfoByName
- XGameSaveReadBlobData
- XGameSaveReadBlobDataAsync
- XGameSaveReadBlobDataResult
- XGameSaveCreateUpdate
- XGameSaveCloseUpdateHandle
- XGameSaveSubmitBlobWrite
- XGameSaveSubmitBlobDelete
- XGameSaveSubmitUpdate
- XGameSaveSubmitUpdateAsync
- XGameSaveSubmitUpdateResult
-
XGameSaveFiles
- XGameSaveFilesGetFolderWithUiAsync
- XGameSaveFilesGetFolderWithUiResult
- XGameSaveFilesGetRemainingQuota
-
XGameStreaming
- XGameStreamingInitialize
- XGameStreamingUninitialize
- XGameStreamingIsStreaming
- XGameStreamingGetClientCount
- XGameStreamingGetClients
- XGameStreamingGetConnectionState
- XGameStreamingRegisterConnectionStateChanged
- XGameStreamingUnregisterConnectionStateChanged
- XGameStreamingHideTouchControls
- XGameStreamingHideTouchControlsOnClient
- XGameStreamingShowTouchControlLayout
- XGameStreamingShowTouchControlLayoutOnClient
- XGameStreamingRegisterClientPropertiesChanged
- XGameStreamingUnregisterClientPropertiesChanged
- XGameStreamingGetStreamPhysicalDimensions
- XGameStreamingGetStreamAddedLatency
- XGameStreamingGetServerLocationNameSize
- XGameStreamingGetServerLocationName
- XGameStreamingIsTouchInputEnabled
- XGameStreamingGetLastFrameDisplayed
- XGameStreamingUpdateTouchControlsState
- XGameStreamingUpdateTouchControlsStateOnClient
- XGameStreamingShowTouchControlsWithStateUpdate
- XGameStreamingShowTouchControlsWithStateUpdateOnClient
- XGameStreamingGetTouchBundleVersionNameSize
- XGameStreamingGetTouchBundleVersion
- XGameStreamingGetClientIPAddress
- XGameStreamingGetSessionId
- XGameStreamingGetDisplayDetails
- XGameStreamingSetResolution
-
XGameUI
- XGameUIShowAchievementsAsync
- XGameUIShowAchievementsResult
- XGameUIShowMessageDialogAsync
- XGameUIShowMessageDialogResult
- XGameUIShowErrorDialogAsync
- XGameUIShowErrorDialogResult
- XGameUIShowTextEntryAsync
- XGameUIShowTextEntryResultSize
- XGameUIShowTextEntryResult
- XGameUITextEntryClose
- XGameUITextEntryGetExtents
- XGameUITextEntryOpen
- XGameUITextEntryGetState
- XGameUITextEntryUpdatePositionHint
- XGameUITextEntryUpdateVisibility
- XGameUISetNotificationPositionHint
- XGameUIShowSendGameInviteAsync
- XGameUIShowSendGameInviteResult
- XGameUIShowMultiplayerActivityGameInviteAsync
- XGameUIShowMultiplayerActivityGameInviteResult
- XGameUIShowWebAuthenticationAsync
- XGameUIShowWebAuthenticationResult
- XGameUIShowWebAuthenticationWithOptionsAsync
- XGameUIShowWebAuthenticationResultSize
- XGameUIShowPlayerProfileCardAsync
- XGameUIShowPlayerProfileCardResult
- XGameUIShowPlayerPickerAsync
- XGameUIShowPlayerPickerResultCount
- XGameUIShowPlayerPickerResult
-
XLauncher
- XLaunchUri
-
XNetworking
- XNetworkingGetConnectivityHint
- XNetworkingQueryConfigurationSetting
- XNetworkingQueryPreferredLocalUdpMultiplayerPort
- XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
- XNetworkingQueryPreferredLocalUdpMultiplayerPortAsyncResult
- XNetworkingQuerySecurityInformationForUrlAsync
- XNetworkingQuerySecurityInformationForUrlAsyncResultSize
- XNetworkingQuerySecurityInformationForUrlAsyncResult
- XNetworkingQuerySecurityInformationForUrlUtf16Async
- XNetworkingQuerySecurityInformationForUrlUtf16AsyncResultSize
- XNetworkingQuerySecurityInformationForUrlUtf16AsyncResult
- XNetworkingQueryStatistics
- XNetworkingRegisterConnectivityHintChanged
- XNetworkingUnregisterConnectivityHintChanged
- XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
- XNetworkingUnregisterPreferredLocalUdpMultiplayerPortChanged
- XNetworkingVerifyServerCertificate
-
XPackage
- XPackageGetCurrentProcessPackageIdentifier
- XPackageIsPackagedProcess
- XPackageGetUserLocale
- XPackageEnumeratePackages
- XPackageFindChunkAvailability
- XPackageChangeChunkInstallOrder
- XPackageInstallChunks
- XPackageUninstallChunks
- XPackageInstallChunksAsync
- XPackageInstallChunksResult
- XPackageRegisterPackageInstalled
- XPackageUnregisterPackageInstalled
- XPackageEnumerateFeatures
- XPackageEnumerateChunkAvailability
- XPackageMount
- XPackageMountWithUiAsync
- XPackageMountWithUiResult
- XPackageGetMountPath
- XPackageGetMountPathSize
- XPackageCloseMountHandle
- XPackageCreateInstallationMonitor
- XPackageCloseInstallationMonitorHandle
- XPackageGetInstallationProgress
- XPackageUpdateInstallationMonitor
- XPackageRegisterInstallationProgressChanged
- XPackageUnregisterInstallationProgressChanged
- XPackageEstimateDownloadSize
- XPackageGetWriteStats
- XPackageUninstallUWPInstance
- XPackageUninstallPackage
-
XPersistentLocalStorage
- XPersistentLocalStorageGetPathSize
- XPersistentLocalStorageGetPath
- XPersistentLocalStorageGetSpaceInfo
- XPersistentLocalStoragePromptUserForSpaceAsync
- XPersistentLocalStoragePromptUserForSpaceResult
-
XSpeechSynthesizer
- XSpeechSynthesizerEnumerateInstalledVoices
- XSpeechSynthesizerCreate
- XSpeechSynthesizerCloseHandle
- XSpeechSynthesizerSetDefaultVoice
- XSpeechSynthesizerSetCustomVoice
- XSpeechSynthesizerCreateStreamFromText
- XSpeechSynthesizerCreateStreamFromSsml
- XSpeechSynthesizerCloseStreamHandle
- XSpeechSynthesizerGetStreamDataSize
- XSpeechSynthesizerGetStreamData
-
XStore
- XStoreCreateContext
- XStoreCloseContextHandle
- XStoreIsAvailabilityPurchasable
- XStoreAcquireLicenseForPackageAsync
- XStoreAcquireLicenseForPackageResult
- XStoreCanAcquireLicenseForPackageAsync
- XStoreCanAcquireLicenseForPackageResult
- XStoreCanAcquireLicenseForStoreIdAsync
- XStoreCanAcquireLicenseForStoreIdResult
- XStoreCloseLicenseHandle
- XStoreIsLicenseValid
- XStoreQueryAddOnLicensesAsync
- XStoreQueryAddOnLicensesResultCount
- XStoreQueryAddOnLicensesResult
- XStoreQueryGameLicenseAsync
- XStoreQueryGameLicenseResult
- XStoreQueryLicenseTokenAsync
- XStoreQueryLicenseTokenResultSize
- XStoreQueryLicenseTokenResult
- XStoreRegisterGameLicenseChanged
- XStoreUnregisterGameLicenseChanged
- XStoreRegisterPackageLicenseLost
- XStoreUnregisterGameLicenseChanged
- XStoreUnregisterPackageLicenseLost
- XStoreAcquireLicenseForDurablesAsync
- XStoreQueryGameAndDlcPackageUpdatesAsync
- XStoreQueryGameAndDlcPackageUpdatesResultCount
- XStoreQueryGameAndDlcPackageUpdatesResult
- XStoreDownloadAndInstallPackagesAsync
- XStoreDownloadAndInstallPackagesResultCount
- XStoreDownloadAndInstallPackagesResult
- XStoreDownloadAndInstallPackageUpdatesAsync
- XStoreDownloadAndInstallPackageUpdatesResult
- XStoreDownloadPackageUpdatesAsync
- XStoreDownloadPackageUpdatesResult
- XStoreQueryPackageIdentifier
- XStoreShowRedeemTokenUIAsync
- XStoreShowRedeemTokenUIResult
- XStoreShowRateAndReviewUIAsync
- XStoreShowRateAndReviewUIResult
- XStoreShowPurchaseUIAsync
- XStoreShowPurchaseUIResult
- XStoreQueryConsumableBalanceRemainingAsync
- XStoreQueryConsumableBalanceRemainingResult
- XStoreReportConsumableFulfillmentAsync
- XStoreReportConsumableFulfillmentResult
- XStoreGetUserCollectionsIdAsync
- XStoreGetUserCollectionsIdResultSize
- XStoreGetUserCollectionsIdResult
- XStoreGetUserPurchaseIdAsync
- XStoreGetUserPurchaseIdResultSize
- XStoreGetUserPurchaseIdResult
- XStoreQueryAssociatedProductsAsync
- XStoreQueryAssociatedProductsResult
- XStoreQueryEntitledProductsAsync
- XStoreQueryEntitledProductsResult
- XStoreQueryProductForCurrentGameAsync
- XStoreQueryProductForCurrentGameResult
- XStoreQueryProductForPackageAsync
- XStoreQueryProductForPackageResult
- XStoreQueryProductsAsync
- XStoreQueryProductsResult
- XStoreProductsQueryNextPageAsync
- XStoreCloseProductsQueryHandle
- XStoreAcquireLicenseForDurablesResult
- XStoreEnumerateProductsQuery
- XStoreProductsQueryHasMorePages
- XStoreProductsQueryNextPageResult
- XStoreShowAssociatedProductsUIAsync
- XStoreShowAssociatedProductsUIResult
- XStoreShowProductPageUIAsync
- XStoreShowProductPageUIResult
-
XSystem
- XSystemGetAnalyticsInfo
- XSystemGetAppSpecificDeviceId
- XSystemGetConsoleId
- XSystemGetDeviceType
- XSystemGetXboxLiveSandboxId
- XSystemGetRuntimeInfo
- XSystemIsHandleValid
- XSystemHandleTrack
-
XTaskQueue
- XTaskQueueCloseHandle
- XTaskQueueCreate
- XTaskQueueCreateComposite
- XTaskQueueDispatch
- XTaskQueueDuplicateHandle
- XTaskQueueGetCurrentProcessTaskQueue
- XTaskQueueGetPort
- XTaskQueueRegisterMonitor
- XTaskQueueRegisterWaiter
- XTaskQueueSetCurrentProcessTaskQueue
- XTaskQueueSubmitCallback
- XTaskQueueSubmitDelayedCallback
- XTaskQueueTerminate
- XTaskQueueUnregisterMonitor
- XTaskQueueUnregisterWaiter
-
XThread
- XThreadIsTimeSensitive
- XThreadSetTimeSensitive
- XThreadAssertNotTimeSensitive
-
XUser
- XUserDuplicateHandle
- XUserCloseHandle
- XUserCompare
- XUserGetMaxUsers
- XUserAddAsync
- XUserAddResult
- XUserAddByIdWithUiAsync
- XUserAddByIdWithUiResult
- XUserGetId
- XUserFindUserById
- XUserGetLocalId
- XUserFindUserByLocalId
- XUserGetIsGuest
- XUserGetState
- XUserGetGamertag
- XUserGetGamerPictureAsync
- XUserGetAgeGroup
- XUserCheckPrivilege
- XUserResolvePrivilegeWithUiAsync
- XUserResolvePrivilegeWithUiResult
- XUserGetTokenAndSignatureUtf16Async
- XUserResolveIssueWithUiUtf16Async
- XUserResolveIssueWithUiUtf16Result
- XUserRegisterForChangeEvent
- XUserUnregisterForChangeEvent
- XUserCloseSignOutDeferralHandle
- XUserFindControllerForUserWithUiAsync
- XUserFindControllerForUserWithUiResult
- XUserFindForDevice
- XUserGetDefaultAudioEndpointUtf16
- XUserGetGamerPictureResultSize
- XUserGetGamerPictureResult
- XUserGetSignOutDeferral
- XUserGetTokenAndSignatureAsync
- XUserGetTokenAndSignatureResultSize
- XUserGetTokenAndSignatureResult
- XUserGetTokenAndSignatureUtf16ResultSize
- XUserGetTokenAndSignatureUtf16Result
- XUserIsStoreUser
- XUserRegisterForDefaultAudioEndpointUtf16Changed
- XUserRegisterForDeviceAssociationChanged
- XUserResolveIssueWithUiAsync
- XUserResolveIssueWithUiResult
- XUserUnregisterForDefaultAudioEndpointUtf16Changed
- XUserUnregisterForDeviceAssociationChanged
托管包装器中的 Xbox 服务 API 列表
以下 Xbox 服务 API 包含在 GDK Unity 程序包中的托管包装器中。 有关 Xbox 服务 API 的详细信息,请参阅 Xbox Live API 参考。
- XblContext
- XblAchievements
- XblEvents
- XblLeaderboard
- XblPresence
- XblPrivacy
- XblSocialManager
- XblUserStatistics
- XblHttpCall
- XblGetErrorCondition
- XblMultiplayer
- XblMultiplayerManager
- XblMultiplayerActivity
- XblMatchmaking
- XblProfile
- XblRealTimeActivity
- XblTitleManagedStats
- XblSocial
- XblTitleStorage
- XblUserStatics