XGameStreamingShowTouchControlLayoutOnClient
显示单个客户端上所请求的一组触摸控件。
语法
void XGameStreamingShowTouchControlLayoutOnClient(
XGameStreamingClientId client,
const char* layout
)
参数
client _In_
类型:XGameStreamingClientId
显示其上的触摸控件的流式处理客户端设备。
layout _In_opt_z_
类型:char*
要显示的触摸控件布局的名称,或者使用 nullptr 以显示默认布局。
应显示在流式处理客户端设备上的触摸控件布局的 id。 布局 ID 特定于游戏,并且与作为触摸适配套件的一部分提供给 Xbox 游戏流式处理的布局的 ID 相对应。 此字符串应为 UTF-8 编码的字符串。
如果提供 nullptr
,将显示默认触摸控件组。
任何与游戏的触摸控件布局 id 不对应的字符串都不会改变客户端设备上触摸控件的状态,触摸控件的状态保持不变。 在这些情况下,内容测试应用程序可能会提供诊断。
返回值
类型:void
备注
此 API 请求指定的游戏流式处理客户端在玩家的客户端设备上显示特定的触摸控件布局。 如果玩家未流式处理游戏,或者流式处理客户端未启用触摸,则此函数不执行任何操作。
如果玩家使用的是物理控制器而不是触摸控件,则此函数将不会强制触摸控件显示在其设备上。 相反,下次玩家开始使用触摸控件时,客户端将使用请求的最后布局。
可以将此函数视为对客户端设备的提示,让后者知道当玩家使用触摸控件时,哪种触摸控件布局最适合当前游戏状态。 然后,客户端设备将管理将这些控件放置在玩家屏幕上的最佳时间。
每次调用 XGameStreamingShowTouchControlLayoutOnClient
都会通过网络发送一条消息,因此不应在每个帧上都调用它。 相反,只在游戏需要在不同触摸控件布局间转换时才调用此 API。
如果您的游戏需要在所有已连接的流式处理客户端设备上显示触摸控件布局,请考虑改用 XGameStreamingShowTouchControlLayout。
示例
void OnGameStateChanged(GameState newState, XGameStreamingClientId client)
{
// Toggle to the set of touch overlay controls which best match the new state of the game
switch (newState)
{
case GameState::FirstPersonAction:
XGameStreamingShowTouchControlLayoutOnClient(client, "FirstPersonAction");
break;
case GameState::Driving:
XGameStreamingShowTouchControlLayoutOnClient(client, "Driving");
break;
case GameState::CutScene:
// Don't show any touch overlay controls while the cut scene is rendering
XGameStreamingHideTouchControlsOnClient(client);
break;
}
}
要求
头文件:xgamestreaming.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机
另请参阅
XGameStreamingHideTouchControlsOnClient
XGameStreamingShowTouchControlLayout
XGameStreaming