GameInputSensorsState

描述传感器的状态。

语法

struct GameInputSensorsState
{
    // GameInputSensorsAccelerometer
    float accelerationInGX;
    float accelerationInGY;
    float accelerationInGZ;

    // GameInputSensorsGyrometer
    float angularVelocityInRadPerSecX;
    float angularVelocityInRadPerSecY;
    float angularVelocityInRadPerSecZ;

    // GameInputSensorsCompass
    float headingInDegreesFromMagneticNorth;
    GameInputSensorAccuracy headingAccuracy;

    // GameInputSensorsOrientation
    float orientationW;
    float orientationX;
    float orientationY;
    float orientationZ;
};

成员

accelerationInGX
类型:float

相对于 x 轴的线性加速度(以 g 力为单位)。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindAccelerometer,则有效。

accelerationInGY
类型:float

相对于 y 轴的线性加速度(以 g 力为单位)。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindAccelerometer,则有效。

accelerationInGZ
类型:float

相对于 z 轴的线性加速度(以 g 力为单位)。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindAccelerometer,则有效。

angularVelocityInRadPerSecX
类型:float

相对于 x 轴的Angular速度(以弧度/秒为单位)。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindGyrometer,则有效。

angularVelocityInRadPerSecY
类型:float

相对于 y 轴,Angular速度(以每秒弧度为单位)。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindGyrometer,则有效。

angularVelocityInRadPerSecZ
类型:float

Angular相对于 z 轴的速度(以每秒弧度为单位)。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindGyrometer,则有效。

headingInDegreesFromMagneticNorth
类型:float

从磁北方向方向(以度为单位)。 范围:[0,360) 。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindCompass,则有效。

headingAccuracy
类型: GameInputSensorAccuracy

标题的准确性。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindCompass,则有效。

orientationW
类型:float

表示设备方向的四元数的 w 分量。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindOrientation,则有效。

orientationX
类型:float

表示设备方向的四元数的 x 分量。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindOrientation,则有效。

orientationY
类型:float

表示设备方向的四元数的 y 分量。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindOrientation,则有效。

orientationZ
类型:float

表示设备方向的四元数的 z 分量。 如果 GameInputSensorsInfo 报告 GameInputSensorsKindOrientation,则有效。

备注

此结构由 IGameInputReading::GetSensorsState 方法使用。

有关详细信息,请参阅 GameInput 读取

有效数据的存在由 GameInputDeviceInfo 中的 GameInputKindSensors 指示。 未报告为存在的数据将使用默认静态值填充。

坐标系

设备应将设备加速报告为 Y-up 右手系统。 Angular速度遵循有关这些轴的右侧规则。

游戏板坐标系 手持坐标系
游戏板上显示的传感器坐标系 手持设备上显示的传感器坐标系

X 轴从设备中心向右方向发展。 Y 轴从设备中心向用户脸方向发展。 Z 轴从设备中心向底部走。

示例加速输出,以 g 为单位:

  • 设备平躺在桌子上: {0, 1, 0}
    • 静态Angular速度(以每秒弧度为单位)为 {0, 0, 0}
  • 从那里,抬高设备:增加 {0, 2, 0}
  • 从那里,删除设备:减少 {0, 0, 0}
  • 旋转设备,使上边缘在空中,下边缘位于表面:{0, 0, -1}
    • 在运动中,角速度 X 变为正值:{2, 0, 0}
  • 返回平整。
  • 旋转设备,使左边缘在空中,右边缘位于图面上:{-1, 0, 0}
    • 在运动中,角速度 Z 变为负值:{0, 0, -2}
  • 返回平整。
  • 顺时针旋转设备 (与右侧规则) 相反
    • 在运动中,角速度 Y 变为负值:{0, -2, 0}

要求

头文件:GameInput.h

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

另请参阅

GameInput 概述
GameInput