在 Unity 项目中将 C# 包装器用于 GDK API

使用本主题了解如何使用 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 和托管包装器之间存在细微的差异。 为了参考,以下两个示例演示了托管和本机代码中的 XUserAddAsyncXblAchievementsUpdateAchievementAsync 的签名和调用函数。

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 参考

另请参阅

电脑版 Unity 开发入门