XGameStreamingShowTouchControlLayout

请求所有连接的流式处理客户端设备显示指定触摸布局。

语法

void XGameStreamingShowTouchControlLayout(
         const char* layout  
)  

参数

layout _In_opt_z_
类型:char*

要显示的触摸控件布局的名称,或者要显示标准 Xbox 控制器布局的 nullptr

应显示在流式处理客户端设备上的触摸控件布局的 id。 布局 ID 特定于游戏,与作为触摸适配套件的一部分提供给 Xbox 游戏流式处理服务的布局的 ID 对应。 此字符串应为 UTF-8 编码的字符串。

如果提供 nullptr,将显示默认触摸控件组。

任何与游戏的触摸控件布局 ID 不对应的字符串都不会改变客户端设备上触摸控件的状态。 在这些情况下,内容测试应用程序可能会提供诊断。

返回值

类型:void

备注

此 API 请求所有当前游戏流式处理客户端在玩家的客户端设备上显示特定的触摸控件布局。 如果玩家未流式处理游戏,或者流式处理到未启用触摸的设备,则此函数不执行任何操作。

如果玩家使用的是物理控制器而不是触摸控件,则此函数将不会强制触摸控件显示在其设备上。 相反,下次玩家开始使用触摸控件时,客户端将使用请求的最后布局。

可以将此函数视为对客户端设备的提示,让后者知道当玩家使用触摸控件时,哪种触摸控件布局最适合当前游戏状态。 然后,客户端设备将管理将这些控件放置在玩家屏幕上的最佳时间。

每次调用 XGameStreamingShowTouchControlLayout 都会通过网络发送一条消息,因此不应在每个帧上都调用它。 相反,只在游戏需要在不同触摸控件布局间转换时才调用此 API。

如果在调用 XGameStreamingShowTouchControlLayout 时未连接任何客户端设备,则当有客户端连接时,它将收到最近请求的触摸控件布局。

如果您的游戏需要在特定的已连接的流式处理客户端设备上显示触摸控件布局,请考虑改用 XGameStreamingShowTouchControlLayoutOnClient

示例

void OnGameStateChanged(GameState newState)
{
    // Toggle to the set of touch overlay controls which best match the new state of the game
    switch (newState)
    {
    case GameState::FirstPersonAction:
        XGameStreamingShowTouchControlLayout("FirstPersonAction");
        break;
    case GameState::Driving:
        XGameStreamingShowTouchControlLayout("Driving");
        break;
    case GameState::CutScene:
        // Don't show any touch overlay controls while the cut scene is rendering
        XGameStreamingHideTouchControls();
        break;
    }
}

要求

头文件:xgamestreaming.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XGameStreamingHideTouchControls
XGameStreamingShowTouchControlLayoutOnClient
XGameStreaming