> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 构建触控的设计师指南

> 构建触控的设计师指南

## 目录

1. [概述](#overview)
   1. [为 XBOX 主机游戏添加触控的好处](#benefits-of-adding-touch-controls-to-xbox-console-games)
2. [最佳实践](#best-practices)
   1. [先玩其他支持触控的游戏](#play-other-touch-supported-games-first)
   2. [使用触控游玩你未修改的游戏](#use-touch-controls-to-play-your-unmodified-game)
   3. [从模板开始并保持简约](#start-from-a-template-and-stay-minimal)
   4. [遵循控件位置指南](#follow-control-placement-guidelines)
      1. [左轮](#left-wheel)
      2. [右轮](#right-wheel)
      3. [上部](#upper)
      4. [下部](#lower)
   5. [遵循特定控件类型和高级场景的技巧](#follow-tips-for-specific-control-types-and-advanced-scenarios)
      1. [4 向和 8 向方向键](#4-way-and-8-way-d-pads)
      2. [陀螺仪瞄准和射击游戏技巧](#gyroscope-aiming-and-tips-for-shooter-games)
      3. [处理复杂和组合操作](#handling-complex-and-combination-actions)
   6. [使用 Touch Adaptation Kit 编辑器](#use-the-touch-adaptation-kit-editor)
   7. [根据当前游戏内场景更改触控](#change-the-touch-controls-to-match-the-current-in-game-scenario)
   8. [使用电影布局在电影和过场动画期间保持沉浸感](#use-a-cinematic-layout-to-keep-immersion-during-movies-and-cut-scenes)
   9. [使用原生触控完全自定义触控交互](#use-native-touch-to-fully-customize-touch-interactions)
   10. [使用自定义资产匹配游戏的美术风格](#use-custom-assets-to-match-the-art-style-of-the-game)
   11. [针对触控更改游戏内 UI、提示和控件重新映射](#change-in-game-ui-hints-and-control-remapping-for-touch-controls)
   12. [检查触控和 XBOX Game Streaming 的常见问题](#check-for-common-issues-for-touch-controls-and-xbox-game-streaming)
       1. [游戏期间断开连接](#disconnection-during-gameplay)
       2. [与各种设备类型的兼容性](#compatibility-with-various-device-types)

## 概述

本文解释了为什么为 XBOX 主机游戏添加触控是有益的，并提供了创建出色触控体验的最佳实践。

触控一直是云游戏标题最受玩家请求的功能之一。这些控件在 XBOX Cloud Gaming (Beta) 和 XBOX Remote Play 上都受到支持。XBOX 触控为玩家开启了与游戏交互的新方式，为玩家提供了更多如何以及何时游玩的选择。通过与游戏开发者合作将触控集成到 200 多款游戏中，我们学到了很多。触控帮助开发者在玩家如何跨不同设备和平台不使用游戏手柄与其游戏交互方面更具创造性和灵活性。通过在开发早期考虑触控和物理游戏手柄映射，开发者可以设计出更直观、更易于使用的游戏体验，满足不同的偏好和情况。

### 为 XBOX 主机游戏添加触控的好处

无论玩家身在何处，触控都能通过消除对游戏手柄的需求让他们享受游戏。这使游戏可供更广泛、更多样化的受众访问，特别是可能没有游戏手柄或更喜欢在不使用游戏手柄的情况下游玩的新玩家或休闲玩家。XBOX Game Streaming 遥测和数据显示，实施了触控的不同类型游戏的游玩时间和用户情绪均有实质性增长。20% 的 XBOX Cloud Gaming 玩家使用触控作为其唯一的游戏方式。此外，提供触控的标题游玩时间平均是不提供触控的标题的约两倍。同样，使用触控的玩家平均对该标题的整体流媒体情绪提供同等甚至更高的满意度。因此，重要的是启用触控的游戏是相关的，并且最重要的是能够很好地用触控游玩。最后，支持触控的游戏在目录中通过 'Play with Touch' 过滤器和 'Touch supported' 标签进行特殊突出显示，如下面的屏幕截图所示。综合所有这些因素，使游戏支持触控并更重要的是确保它能够很好地用触控游玩的重要性显而易见。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/play-with-touch.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=069d73da606ef4c7fb6643f817bae080" alt="带触控游玩游戏标题一行的截图" width="336" height="494" data-path="images/gdk/features/common/play-with-touch.png" />

## 最佳实践

本指南为你的游戏创建触控提供了基本实践。它们侧重于为触控屏设备上的玩家提供流畅和自然的体验。大多数这些实践可以轻松集成，无需更改现有的游戏代码。

### 先玩其他支持触控的游戏

已经存在许多支持触控的优秀游戏示例。虽然没有两款游戏的输入需求是相同的，但你可以通过熟悉现有的支持触控标题来学习哪种类型的触控和布局可能适合你的游戏、如何使用原生触控等等。有关如何使用触控游玩游戏的更多信息，请参阅[使用 XBOX 触控进行云游戏或远程游玩](https://support.xbox.com/help/games-apps/cloud-gaming/use-touch-controls)。

### 使用触控游玩你未修改的游戏

只需用触控游玩你的游戏，理解它如何与触控配合工作，这一点很重要。通过在内容测试应用程序 (Content Test Application) 中使用 Standard 布局从你的开发工具包流式传输到触控设备，这很容易做到。有关如何设置流式传输开发环境的信息，请参阅[游戏流式传输测试先决条件](/build/core-features/common/game-streaming/game-streaming-stream-your-game)。

<Note>
  虽然 `Standard` 布局有助于感受触控在你游戏中的效果，但我们不建议一般游戏使用该布局。要为你的游戏开发触控，请参阅以下指南。
</Note>

使用 Standard 布局，将变得明显在何处难以控制游戏以及在何处可以创建更好的布局。以下最佳实践将逐步介绍如何使用触控实现更有趣和流畅的体验。

### 从模板开始并保持简约

在游戏中开始使用自定义触控很简单。无需更改游戏代码。仅需几分钟，你就可以从模板中获取示例布局，来自 [XBOX GitHub](https://github.com/microsoft/xbox-game-streaming-tools/tree/main/touch-adaptation-kit/samples/sample-layouts) 或使用[创建命令](/build/core-features/common/game-streaming/tak-command-line-tool/game-streaming-tak-command-line-create-command)，为你游戏的特定需求自定义布局。消除所有不必要的按钮，然后自定义模板。虽然模板已应用了许多控件位置的最佳实践，但下一节提供了自定义布局的更深入指南。

### 遵循控件位置指南

传统的游戏手柄控制方案通常使用多达四个同时输入。如下图所示，游戏通常需要同时使用双拇指和两根手指在控制器上。（绿色控件通常由拇指访问。红色控件由手指访问。）

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/controller-inputs.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=f5bb36ecbfa0d92387a2172581c27f84" alt="按拇指与手指划分的控制器输入" width="800" height="534" data-path="images/gdk/features/common/controller-inputs.png" />

与游戏手柄相比，触摸界面受到更多约束。通常在握持设备时一次只能使用左右拇指进行两个输入。触摸设备的侧面或背面通常没有控件来允许更多同时输入。此外，触控无法提供游戏手柄那样按按钮或操作扳机的物理反馈。仔细考虑将控件放置在哪里以及如何映射它们，对于提供有趣的体验至关重要。

以下标准控制器布局图显示了所有可能的按钮。最常用的控件位于玩家手指感到舒适的区域，如灰色带所示。请注意玩家的拇指只能到达屏幕中央一定的距离，以及舒适移动的区域通常几乎是从握持设备的位置呈放射状。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-arcs.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=82838bca83486d50c58bf0268c338333" alt="标准触控布局，舒适区域以灰色突出显示" width="800" height="358" data-path="images/gdk/features/common/tak-arcs.png" />

虽然 Standard 布局提供了物理 XBOX 控制器上所有可用的输入，但它可能不是游玩你的游戏的绝佳方式。此外，对玩家来说可能不太有趣。因为每个游戏在大多数情况下使用不同的控件并以不同的组合使用，所以最好根据 Touch Adaptation Kit 提供的不同控件区域为玩家自定义哪些控件最容易获取。下图显示了可用于放置控件的位置。区域内的位置放置在屏幕上各个位置排列的插槽中。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-slots.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=51375655eba2136b1ea4a5b4901c54f5" alt="Touch Adaptation Kit 区域和插槽" width="800" height="462" data-path="images/gdk/features/common/tak-slots.png" />

通常，玩家的拇指在游戏的大部分时间里位于左右轮上。这些位置是你游戏的主要操作应该放置的地方。相比之下，`upper` 和 `lower` 区域最适合较少使用的操作。它可能需要玩家有意识地移动他们的拇指才能到达那些控件，特别是在像平板电脑这样的较大设备上。以下部分提供了关于每个区域以及在何处考虑放置各种游戏操作的大量详细信息。

最后，非常重要的是玩你的游戏并根据使用频率对所有操作进行排名。例如，在射击游戏的 FPS 模式下，频繁的操作是射击、装弹、瞄准和移动角色。不太常见的操作是切换武器、投掷手雷和使用物品。使用最少的操作是打开菜单和地图。你可以根据主要、次要和第三级操作按照以下指南应用此排名来放置触控。

#### 左轮

左轮通常用于玩家移动或角色定位，以及玩家移动时需要执行的操作。

##### **内侧**

左侧[内轮](/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel)环通常保留给[仅一个控件](/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel#pattern-1-one-control)来移动角色。这是主要的角色移动操作。

###### 提示

1. 在角色控制游戏中使用非相对（绝对）左摇杆。术语*相对*指的是摇杆如何响应相对于触摸开始位置的触摸移动。有关更多信息，请参阅[摇杆](/reference/system/touchadaptationkit/controls/game-streaming-touch-joystick)。
2. 如果游戏具有基于左摇杆输入量在行走和跑步之间改变速度的系统，请使用相对左摇杆。在玩家需要逐渐更改输入以更改速度的情况下，非相对摇杆效果不佳。
3. 在可以使用方向键或左摇杆控制角色移动的 2D 游戏中，使用[方向键](/reference/system/touchadaptationkit/controls/game-streaming-touch-directionalpad)而不是摇杆控件。除非左摇杆提供方向键不提供的功能（例如速度或精细角度方向）。当使用摇杆而不是方向键时，最好对 2D 角色移动使用非相对摇杆。
4. 对于只导航菜单的特定布局，尽可能使用方向键控件。如果不能使用方向键，请使用非相对摇杆。
5. 对简单布局使用相对摇杆。相对摇杆对于习惯游戏手柄的玩家更熟悉。但是，非相对摇杆可以通过允许玩家更快地应用其所需的输入而无需始终拖动其触摸来提供更高的技能上限。尝试两种类型的摇杆以更好地了解什么是最愉快的。

##### **外侧**

外轮环对其他频繁操作很有用。然而，最频繁的操作通常属于右轮。

###### 提示

1. 为次要和第三级操作创建[外环控件簇](/reference/system/touchadaptationkit/layout/game-streaming-touch-control-cluster-outer)。这为此操作提供更大的命中区域。当在簇中仅使用单个控件时，请考虑使用簇语法 `[<你的次要操作控件>, null]` 或 `[null, <你的次要操作控件>]` 来创建一个带有空白位置的双控件簇，以便相对于 `[<你的次要操作控件>]` 有效地将单个控件放置在环内稍微更远或更外的位置。
2. 将次要操作放在内环左上部分之外的插槽 7 和插槽 8 中。这提供了轻松访问，无需进一步伸向屏幕中间。在轮子中的所有其他插槽都已满并且需要空间之前，不要拆分次要插槽（控件簇）。
3. 将第三级操作直接放在内环下方的插槽 4 和插槽 5 中。这是一个舒适的位置，可以从主要操作快速移动拇指到那里。在轮子中的所有其他插槽都已满并且需要空间之前，不要拆分第三级插槽（控件簇）。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-left-wheel-secondary.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=3498c7d2ec1f0eaa700d30c8db942191" alt="Touch Adaptation Kit 左轮次要和第三级操作的放置" width="800" height="334" data-path="images/gdk/features/common/tak-left-wheel-secondary.png" />

4. 考虑哪些操作需要与玩家移动一起按住（例如按住蹲下或冲刺）。创建带有 `action` 分配的摇杆控件以允许两个操作同时发生，同时让右拇指腾出用于其他重要操作。有关示例，请参阅[通过阈值时从行走切换到冲刺的摇杆](/reference/system/touchadaptationkit/controls/game-streaming-touch-joystick#example-2-joystick-that-switches-from-walk-to-sprint-when-threshold-is-passed)。

#### 右轮

右轮最常用于执行相机移动以及主要角色操作，例如攻击、射击、跳跃、使用物品或特殊技能。

##### **内侧**

通常，将右侧[内轮](/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel)环保留给执行最频繁使用操作（例如主要攻击）的[仅一个控件](/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel#pattern-1-one-control)。虽然内轮环可以与多个控件聚集，但最好将大命中区域专用于最频繁使用的操作。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-right-wheel-primary.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=71ddd555db90e97e784d7bdbe9427dcf" alt="Touch Adaptation Kit 右轮主要操作的放置" width="800" height="424" data-path="images/gdk/features/common/tak-right-wheel-primary.png" />

###### 提示

1. 对于可能需要同时按住另一个操作的频繁使用操作（例如按住瞄准），请考虑使用带有 `pullAction` 的[按钮控件](/reference/system/touchadaptationkit/controls/game-streaming-touch-button)以允许使用单次触摸激活瞄准和射击。

##### **外侧**

外轮环通常用于可以在移动时执行的快速操作。这些操作的示例包括跳跃、冲刺和装弹。

###### 提示

1. 为次要和第三级操作创建[外环控件簇](/reference/system/touchadaptationkit/layout/game-streaming-touch-control-cluster-outer)以为此操作提供更大的命中区域。当在簇中仅使用单个控件时，请考虑使用簇语法 `[<你的次要操作控件>, null]` 或 `[null, <你的次要操作控件>]` 来创建一个带有空白位置的双控件簇，以便相对于 `[<你的次要操作控件>]` 有效地将单个控件放置在环内稍微更远或更外的位置。在轮子中的所有其他插槽都已满并且需要更多空间之前，不要向次要簇添加额外的控件。
2. 将次要操作放在主要操作右上方之外的插槽 1 和插槽 2 中。这允许轻松访问，无需进一步伸向屏幕中间。在轮子中的所有其他插槽都已满并且需要空间之前，不要拆分次要插槽（控件簇）。
3. 将第三级操作直接放在内环下方的插槽 4 和插槽 5 中。这是一个舒适的位置，可以从主要操作快速移动拇指到那里。在轮子中的所有其他插槽都已满并且需要空间之前，不要拆分第三级插槽（控件簇）。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-right-wheel-secondary.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=3820136d7784b4fe168cc4473f7f4986" alt="Touch Adaptation Kit 右轮次要和第三级操作的放置" width="800" height="321" data-path="images/gdk/features/common/tak-right-wheel-secondary.png" />

4. 在第三级插槽中使用类似跳跃的操作。

<Note>
  如果还存在类似冲刺的操作，请在插槽 4 中使用冲刺，插槽 5 中使用跳跃，而不是对第三级使用控件簇。这有效地将空间分成两半，允许在主要操作、跳跃、冲刺和玩家移动之间轻松组合。以下图片显示了通过聚集可以实现主要攻击、冲刺和跳跃之间的轻松组合。
</Note>

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-wheel-slots-detail.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=12db2334010397f6a1e66699c641d544" alt="Touch Adaptation Kit 右轮跳跃、冲刺和主要攻击操作的聚集" width="400" height="409" data-path="images/gdk/features/common/tak-wheel-slots-detail.png" />

5. 根据其他操作需要距离跳跃类操作多近，可以将它们放在次要插槽（插槽 1 和 2 之间的簇）中，或插槽 6 中。从那里，在插槽 5 和 6 之间聚集将另一个操作放置在跳跃附近。

以下图片显示了将三个操作聚集在插槽 5 和 6 之间——防御和翻滚——它们位于跳跃附近。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-wheel-slots-detail-2.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=2cef314bc99f062ec2e9711d8c5ba340" alt="Touch Adaptation Kit 右轮在跳跃附近聚集其他操作" width="400" height="388" data-path="images/gdk/features/common/tak-wheel-slots-detail-2.png" />

6. 尽可能使用[陀螺仪传感器控件](/reference/system/touchadaptationkit/sensor-controls/game-streaming-touch-gyroscope)控制相机。这在所有时间为另一操作腾出右拇指。作为最后的手段，使用相对右摇杆控制相机。

#### 上部

上部区域最适合不常见的、菜单或导航类的操作。此区域从右上角开始向中间延伸。

###### 提示

1. 在游戏的过场部分，上部可用于跳过操作。右上角是导航操作的常见位置，可能位于字母框或柱形框中。
2. 左上角保留给系统按钮。玩家期望在顶部行中有可能暂停或导航游戏的类似操作。请考虑在此区域放置地图、库存和菜单等内容。

#### 下部

下部区域位于屏幕底部中心。此区域是控件最不常使用的区域。在某些设备上到达屏幕中间可能具有挑战性。

###### 提示

1. 虽然可以将空白控件放在下部区域来调整控件的位置，但请记住，各种设备形态可能允许看到更少的控件。不要通过添加许多空白控件将控件定位在底部角。它们经常与控件轮重叠。玩家经常将他们的轮子略微下移以获得舒适的游戏位置。

### 遵循特定控件类型和高级场景的技巧

#### 4 向和 8 向方向键

方向键通常用于控制角色的 4 向或 8 向移动。它对于导航菜单也很有用。默认情况下，方向键控件的工作方式类似于物理方向键，可以同时激活多个方向。这也称为*8 向*。相反，4 向方向键一次只能激活其四个方向之一。要将方向键限制为仅 4 向，请向控件添加 `"interaction": {"activationType": "exclusive"}`。

###### 提示

1. 在 2D 游戏允许角色以八个方向（包括对角线）移动时，请使用 8 向方向键。
2. 在 2D 游戏只允许角色以四个方向（左、右、上、下）移动时，请使用 4 向方向键。
3. 在控制菜单时，请使用 4 向方向键。

#### 陀螺仪瞄准和射击游戏技巧

在为触控调整复杂游戏时的常见场景是，即使只有两根可以合理与触控交互的拇指，用户可能需要一次激活两个以上的操作。为了帮助完成这些更复杂的任务，可以使用陀螺仪提供额外的输入。

###### 提示

1. 使用陀螺仪控制玩家视角相机。对玩家来说，能够左右倾斜设备以及前后倾斜设备来精确控制相机是直观的。
2. 在游戏中，使用带有鼠标输入的陀螺仪（指定 `"output": "relativeMouse"`）比使用摇杆（指定 `"output": "relativeJoystick"`）在瞄准方面要好得多，特别是在第一人称和第三人称游戏中。
3. 手机在物理空间中 90 度旋转通常使游戏内角色转动 120 度。此功能使玩家更容易在游戏之间切换，并使控件感觉对他们更熟悉。
4. 使用陀螺仪与触控板结合使用是首选。更好的玩家将希望使用此组合进行快速定向——大部分精细瞄准来自陀螺仪。
5. 考虑将摇杆与陀螺仪结合以允许更多的游戏方式。除了摇杆提供的功能之外，陀螺仪控件可用于进行小调整。
6. "始终开启"风格的陀螺仪具有最高的技能上限；但是，此风格不适合在移动车辆中的玩家。
7. 尽可能对不需要陀螺仪控件的菜单和游戏其他部分使用不同的布局。
8. 使用 `"renderAsButton": true` 创建大多数带触控板的按钮，具体取决于其操作以及游戏如何支持这些功能。瞄准+射击是主要示例，但这可以应用于阻挡和投掷手雷之类的操作。以下是瞄准 (LT) + 射击 (RT) 触控板控件的示例。

```JSON theme={null}
{
    "type": "touchpad",
    "axis": [
        {
            "input": "axisX",
            "output": "relativeMouseX",
            "sensitivity": 5
        },
        {
            "input": "axisY",
            "output": "relativeMouseY",
            "sensitivity": 2.5
        }
    ],
    "renderAsButton": true,
    "action": [ "rightTrigger", "leftTrigger" ],
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "fire"
            },
        }
    }
}
```

9. 始终将瞄准+射击放在屏幕中央附近，通常在右轮外的插槽 5。如果放在边缘（玩家无法将相机完全向右转动的位置），他们将没有空间来滑动。
10. 在为第一人称或第三人称射击游戏构建新的触控布局时，请使用第一人称射击游戏入门模板。每个操作位置都经过精心分析。

Gears 5 使用陀螺仪和带 `renderAsButton: true` 的触控板作为瞄准+射击控件，实现精准瞄准，如以下屏幕截图所示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-button-gyro.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=ae809ebbf213fd2672adf87bb935d962" alt="Gears 5 启用陀螺仪的布局截图" width="800" height="382" data-path="images/gdk/features/common/gears-5-button-gyro.png" />

#### 处理复杂和组合操作

对玩家来说，仅使用两根拇指执行复杂操作可能具有挑战性。Touch Adaptation Kit 提供了几种通过触控执行复杂操作的机制。

###### 提示

1. [多个操作](/reference/system/touchadaptationkit/types/game-streaming-touch-action#example-2-action-is-pressing-the-left-bumper-and-the-right-bumper-buttons-simultaneously)可以分配给单个控件。例如，蹲下是通过同时按下左肩键和右肩键来激活的。以下按钮定义允许玩家通过单次按下来启用蹲下。

<Note>
  为控件分配多个操作时，无法使用默认图标。重要的是自定义样式以指示控件具有什么语义操作，如以下示例所示。
</Note>

```JSON theme={null}
{
    "type": "button",
    "action": [ "leftBumper", "rightBumper"],
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "crouch"
            }
        }
    }
}
```

2. `pullAction` 可以分配给[按钮控件](/reference/system/touchadaptationkit/controls/game-streaming-touch-button)。它帮助玩家使用一次触摸和拖动动作激活两个操作。例如，瞄准分配给 LT，射击分配给 RT。以下按钮定义允许玩家在按住按钮时瞄准，然后通过向外拉动进行射击。

```JSON theme={null}
{
    "type": "button",
    "action": "leftTrigger",
    "pullAction": "rightTrigger",
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "aim"
            }
        },
        "pulled": {
            "faceImage": {
                "type": "icon",
                "value": "fire"
            }
        }
    }
}
```

3. 带有 `action` 和 `actionThreshold` 的摇杆除其轴输出外，仅在达到 `actionThreshold` 值时才激活分配的操作。例如，仅激活左摇杆输入。冲刺通过用左摇杆输入按下 RT 激活。以下摇杆定义允许玩家通过超过 2.5 的阈值值激活冲刺。玩家可以仅使用左摇杆从行走切换到冲刺。

```JSON theme={null}
{
    "type": "joystick",
    "action": "rightTrigger",
    "actionThreshold": 2.5,
    "axis": {
        "input": "axisXY",
        "output": "leftJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    },
    "styles": {
        "default": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "walk"
                }
            }
        },
        "activated": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "sprint"
                }
            }
        }
    }
}
```

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/yakuza-joystick-threshold.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=901640bc2b4fb144291abef8a5311445" alt="Yakuza Like a Dragon 使用摇杆操作阈值的截图" width="800" height="390" data-path="images/gdk/features/common/yakuza-joystick-threshold.png" />

在 Yakuza Like a Dragon 中，如果左摇杆输入超过阈值 2.5，则激活右扳机进行冲刺。

4. 带有 "action" 的摇杆可以在使用摇杆时激活分配的操作。例如，径向菜单通过按下左肩键激活，可以通过移动右摇杆进行选择。以下摇杆定义允许玩家按住左肩键并通过使用右摇杆从径向菜单中选择操作。

```JSON theme={null}
{
    "type": "joystick", 
    "action": "leftBumper",
    "axis": {
        "input": "axisXY",
        "output": "rightJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    },
    "styles": {
        "default": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "inventory"
                }
            }
        }
    }
} 
```

在 Sea of Thieves 中，通过使用带 `action` 的摇杆使用径向菜单选择装备。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/sea-of-thieves-radial.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=23c34807b7afd61f5db6d82fae646a2b" alt="Sea of Thieves 使用径向菜单的截图" width="800" height="355" data-path="images/gdk/features/common/sea-of-thieves-radial.png" />

### 使用 Touch Adaptation Kit 编辑器

[Visual Studio Code 的 Touch Adaptation Kit (TAK) 编辑器扩展](/build/core-features/common/game-streaming/tak-editor/game-streaming-tak-editor)是用于创建、预览、验证和打包 Touch Adaptation Bundle (TAB) 的工具。这些文件具有 .takx 文件扩展名。你可以使用 TAK 编辑器在 VS Code 中为 XBOX Game Streaming 上的游戏工作，无需正在进行的游戏流。使用此 VS Code 扩展提供内联 Intellisense 并简化触控创作体验。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-editor.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=2207b64653f18267e0ee857707bc1681" alt="TAK 编辑器 Visual Studio Code 扩展的截图" width="800" height="522" data-path="images/gdk/features/common/tak-editor.png" />

### 根据当前游戏内场景更改触控

游戏可以根据运行时的动态游戏状态更改触控布局或修改布局状态。两种方法都可以一起使用，为玩家创建最自然的体验。有关更多信息，请参阅[根据游戏状态更改触控布局或修改状态](/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-changing-layouts-game-state#change_layout)的文档。

例如，Minecraft Dungeons 使用触控布局状态修改，随着玩家学习新能力逐步显示游戏机制。

<img src="https://mintcdn.com/microsoft-4404708b/nTPVBuko1tKGsd6P/images/gdk/features/common/minecraft-dungeons-1.webp?fit=max&auto=format&n=nTPVBuko1tKGsd6P&q=85&s=0dbaeb44b262947c80f730c8de76bc7d" alt="Minecraft Dungeons 触控布局仅显示最少控件的截图" width="800" height="384" data-path="images/gdk/features/common/minecraft-dungeons-1.webp" />

在 Minecraft Dungeons 中，首先只显示移动和近战等基本控件。

<img src="https://mintcdn.com/microsoft-4404708b/nTPVBuko1tKGsd6P/images/gdk/features/common/minecraft-dungeons-2.webp?fit=max&auto=format&n=nTPVBuko1tKGsd6P&q=85&s=c4543a9539dea36ab451de24ebe75c6d" alt="Minecraft Dungeons 触控布局添加了额外控件的截图" width="800" height="383" data-path="images/gdk/features/common/minecraft-dungeons-2.webp" /> 在 Minecraft Dungeons 中，当首次获得远程武器时，会添加远程攻击控件。

### 使用电影布局在电影和过场动画期间保持沉浸感

电影和过场动画的主要目的是观看以享受游戏的故事。所需的控件通常仅限于暂停和跳过之类的操作。要创造最具沉浸感的观看体验，重要的是尽可能消除更多控件。

###### 提示

1. 尽可能，仅在玩家需要时显示触控。
   1. 检测玩家的触摸输入相对简单。有关更多信息，请参阅[使用 IGameInput 为你的游戏构建原生触摸界面](/build/core-features/common/game-streaming/game-streaming-native-touch-igameinput)和完整的 [SimpleCloudAwareSample](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/xCloud/SimpleCloudAwareSample) 游戏示例。
   2. 即使显示 Touch Adaptation Kit 布局也可以检测触摸。通过使用原生触摸 API，玩家可以点击屏幕以使游戏显示一个最小的电影布局。游戏可以在一段时间内未检测到触摸输入后隐藏此布局。

例如，Persona 3 Reload 具有带原生触摸检测的自定义电影布局。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/persona-3-cinematic-1.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=ac5ea63976b8ed8831ee90fe5378427d" alt="Persona 3 Reload 过场动画期间空白触控布局的截图" width="800" height="365" data-path="images/gdk/features/common/persona-3-cinematic-1.png" />

在 Persona 3 Reload 中，播放过场动画时触控被隐藏。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/persona-3-cinematic-2.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=edfd7755a929611e2db4827e9d0ac8a5" alt="Persona 3 Reload 过场动画期间电影触控布局的截图" width="800" height="352" data-path="images/gdk/features/common/persona-3-cinematic-2.png" />

在 Persona 3 Reload 中，通过检测原生触摸显示触控，显示少量控件以跳过过场动画。

2. 或者，可以在不修改游戏代码的情况下实现类似效果。可以将上部右侧区域中的控件[触控布局层](/reference/system/touchadaptationkit/layout/game-streaming-touch-layer)与使用 `toggle` 属性和层操作的[按钮控件](/reference/system/touchadaptationkit/controls/game-streaming-touch-button)结合使用。

### 使用原生触控完全自定义触控交互

原生触控是在触控屏设备上玩游戏最熟悉的方式。移动设备上的玩家熟悉构建直接触摸支持来控制游戏的游戏。通过使用 `GameInput` API，你可以在游戏中启用原生触控。它提供了一种更直观、更自然的与你游戏世界交互的方式。原生触控可以补充或替代重新映射到 XBOX 控制器按钮和摇杆的 Touch Adaptation Kit 覆盖。有关更多详细信息，请参阅[使用 IGameInput 为你的游戏构建原生触摸界面](/build/core-features/common/game-streaming/game-streaming-native-touch-igameinput)和完整的 [SimpleCloudAwareSample](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/xCloud/SimpleCloudAwareSample) 游戏示例。

以下是原生触控支持的一些示例。

* **库存管理：** 原生触控可以让玩家简单地点击物品甚至使用拖动等技巧，从而更轻松、更快地选择和装备物品。与传统的基于控制器的管理相比，这可能是相当大的生活质量改进。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/minecraft-dungeons-inventory.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=45e406e944aed8d654cb88f2dc4ad39e" alt="Minecraft Dungeons 库存管理的截图" width="800" height="400" data-path="images/gdk/features/common/minecraft-dungeons-inventory.png" />

在 Minecraft Dungeons 中，库存管理是通过使用原生触控完成的。

* **菜单：** 在触控屏上操作菜单更直观。只需点击所需项，而不是使用方向键或摇杆导航到项。
* **完全原生触控支持：** 一些游戏支持完全原生触控，无需使用 Touch Adaptation Kit 重新映射到控制器。这允许玩家完全专注于移动游戏体验。这些游戏通常已经有移动版本或支持触控友好的界面，使原生触控支持相对容易。主要设计为使用鼠标玩的游戏也倾向于更容易支持原生触控。

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/fortnite-native-touch.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=17e7c2a85266dd9d5421134ef188fb1f" alt="Fortnite 触控游戏截图" width="800" height="365" data-path="images/gdk/features/common/fortnite-native-touch.png" />

在 Fortnite 中，通过 XBOX Cloud Gaming 游玩时支持原生触控。

### 使用自定义资产匹配游戏的美术风格

虽然你可以从控件的内置图标集中选择资产，但最具沉浸感和无缝的体验是使用与你游戏美术风格相匹配的图案自定义控件。这样做可以让 Touch Adaptation Kit 覆盖感觉有目的、自然，是游戏不可分割的一部分。这与仅考虑控制器设计的简单重新映射形成对比。

例如，Minecraft Dungeons 使用与游戏内设计语言相呼应的方块图标。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/minecraft-dungeons-assets.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=19c7411ce1c7857fe44ec6e97e09f80a" alt="Minecraft Dungeons 使用自定义资产匹配游戏风格的截图" width="800" height="379" data-path="images/gdk/features/common/minecraft-dungeons-assets.png" />

在 Minecraft Dungeon 中，自定义资产匹配游戏独特的美术风格。

### 针对触控更改游戏内 UI、提示和控件重新映射

UI、提示和控件重新映射通常根据玩家使用的输入类型而变化。例如，如果游戏同时支持游戏手柄和键盘鼠标输入类型，通常在检测到游戏手柄输入时显示游戏手柄特定按钮提示。当检测到键盘或鼠标输入时，游戏通常显示键盘和鼠标 UI。

这种基于输入类型的动态用户体验也适用于 Touch Adaptation Kit 控件。通过使用 [XGameStreamingGetGamepadPhysicality API](/reference/system/xgamestreaming/functions/xgamestreaminggetgamepadphysicality)，可以识别输入是来自物理游戏手柄，还是来自已翻译成虚拟控制器输入的触控布局。作为响应，可以自定义用户体验以向玩家显示最合适的图像。

例如，Gears 5 根据输入类型动态调整游戏内提示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-button-prompt.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=fa055a16a14022580bdc2ae42c7feda8" alt="Gears 5 游戏手柄按钮提示的截图" width="800" height="361" data-path="images/gdk/features/common/gears-5-button-prompt.png" />

在 Gears 5 中，使用游戏手柄输入类型时可用 UI 和提示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-button-remapping.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=d88cb260eb07ee69c950b14afc7fb4c1" alt="Gears 5 游戏手柄按钮重新映射的截图" width="800" height="375" data-path="images/gdk/features/common/gears-5-button-remapping.png" />

在 Gears 5 中，使用带重新映射输入的游戏手柄输入类型时可用 UI 和提示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-touch-prompt.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=fc2e7a47de33a028403cf922329ba208" alt="Gears 5 触控提示的截图" width="800" height="369" data-path="images/gdk/features/common/gears-5-touch-prompt.png" />

在 Gears 5 中，UI 和提示可用于与触控图标匹配的触控输入类型。Gears 5 智能地按输入类型处理重新映射，因此使用触控游玩时不显示或使用重新映射的控制器输入。

### 检查触控和 XBOX Game Streaming 的常见问题

#### 游戏期间断开连接

在移动设备上，玩家短暂离开游戏的情况很多。例如，转到主屏幕、查看消息和新闻以及拨打电话。这些情况会导致流式传输客户端断开连接或暂停。因此，可能与游戏存在状态不匹配。

###### 提示

1. 当游戏从断开状态返回时，确保正确加载和操作触控，包括布局、资产和状态。当使用 API 控制触控状态时，这一点特别重要。
2. 当玩家断开连接时，尽可能暂停游戏，以防止进度丢失或游戏结束情况。可以通过寻找[约束事件](/build/console-features/console-workflows/xbox-game-life-cycle)或流式传输客户端的断开连接来实现。

#### 与各种设备类型的兼容性

有各种类型的设备能够使用触控，包括手机、平板电脑和二合一 PC。这些设备的不同特性，包括屏幕尺寸的差异和传感器的存在与否，如果不考虑这些差异，可能会阻止舒适的游戏体验。

###### 提示

1. 确保所有触控在具有各种屏幕尺寸的设备上都能正常工作且易于访问。
2. 确保设备上传感器的可用性。如果不可用，请提供不需要传感器的其他选项。例如，你的游戏使用陀螺仪进行瞄准。如果设备上没有陀螺仪，请改用触控板控件。
3. 要轻松测试不同的屏幕尺寸，可以使用 PC 更改 PC 内容测试应用程序或 Web 浏览器的窗口大小。如果没有随时可用的触摸启用 PC，内容测试应用程序允许基本测试，将鼠标点击视为触摸事件的设置。最后，使用 [TAK 编辑器扩展](/build/core-features/common/game-streaming/tak-editor/game-streaming-tak-editor)预览窗口视图轻松查看不同尺寸的触控。


## Related topics

- [为 XBOX 游戏串流构建触控布局](/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/index.md)
- [触控入门](/zh-CN/build/core-features/common/game-streaming/game-streaming-getting-started-with-touch.md)
- [构建触控布局](/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-building-touch-layout.md)
- [XBOX Cloud Gaming 触控与流式传输支持](/zh-CN/build/core-features/common/game-streaming/index.md)
- [部署触控布局](/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-deploying-touch-layout.md)
