Steam 控制器的支持 API。
此 API 已弃用,改用 ISteamInput。请参见
ISteamInput 接口,了解该 API 的相关信息。
参见
Steam 输入文档,了解更多信息。
成员函数
ISteamController
的成员函数通过全局访问器函数
SteamController()
调用。
ActivateActionSet
void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
重新配置控制器以使用指定的操作集(如:“菜单”、“行走”、或“驾驶”)。
此函数消耗低,并能多次安全调用。 通常在您的状态循环中反复调用较为容易,无需试图将其放入您的所有状态转换中。
示例:void updateStateLoop()
{
switch( currentState )
{
case MENU:
SteamController()->ActivateActionSet( controllerHandle1, menuSetHandle );
doMenuStuff();
break;
case WALKING:
SteamController()->ActivateActionSet( controllerHandle1, walkingSetHandle );
doWalkingStuff();
break;
case DRIVING:
SteamController()->ActivateActionSet( controllerHandle1, drivingSetHandle );
doDrivingStuff();
break;
case FIGHTING:
SteamController()->ActivateActionSet( controllerHandle1, fightingSetHandle );
doFightingStuff();
break;
}
}
示例:void updateStateLoop()
{
switch( currentState )
{
case MENU:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, menuSetHandle );
doMenuStuff();
break;
case WALKING:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, walkingSetHandle );
doWalkingStuff();
break;
case DRIVING:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, drivingSetHandle );
doDrivingStuff();
break;
case FIGHTING:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, fightingSetHandle );
doFightingStuff();
break;
}
}
ActivateActionSetLayer
void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
重新配置控制器以使用指定的操作集层。
参见
操作集层一文,了解详情以及深度实用示例。
示例:SteamController()->ActivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateActionSetLayer
void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
重新配置控制器以停止使用指定的操作集层。
示例:SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateAllActionSetLayers
void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
重新配置控制器以停止使用所有操作集层。
示例:SteamController()->DeactivateAllActionSetLayers( controllerHandle1 );
GetActiveActionSetLayers
int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
把一个指定控制器句柄的所有当前激活操作集层填入一个数组。
示例:ControllerHandle_t *handlesOut = new ControllerHandle_t [];
SteamController()->GetActiveActionSetLayers( controllerHandle1, &handlesOut );
GetActionSetHandle
ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
名称 | 类型 | 描述 |
pszActionSetName | const char * | 在游戏的 VDF 文件中定义的操作集的字符串标识符。 |
查找操作集句柄。 最好在启动时调用一次,并存储句柄供所有未来 API 调用使用。
返回: ControllerActionSetHandle_t指定操作集的句柄。
示例:ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );
GetAnalogActionData
ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
返回所提供的模拟游戏操作的当前状态。
返回: ControllerAnalogActionData_t指定模拟操作的当前状态。
示例:ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
名称 | 类型 | 描述 |
pszActionName | const char * | 在游戏的 VDF 文件中定义的模拟操作的字符串标识符。 |
获得指定的模拟操作的句柄。
注意: 此函数不接受操作集句柄参数。 这意味着 VDF 文件中的每个操作都必须有惟一的字符串标识符。 换言之,如果您在两个不同的操作集中使用了一个名为“向上”的操作,此函数将只返回其中一个,而忽略另一个。
返回: ControllerAnalogActionHandle_t指定模拟操作的句柄。
示例:ControllerAnalogActionHandle_t moveHandle = SteamController()->GetAnalogActionHandle( "move" );
GetAnalogActionOrigins
int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
用 EControllerActionOrigin 句柄填充 originsOut,获取模拟操作集中某一模拟操作的来源。 用于显示该操作的相应屏幕提示。
返回: int
originsOut
中提供的源数量。
示例:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );
GetConnectedControllers
int GetConnectedControllers( ControllerHandle_t *handlesOut );
通过用控制器句柄来填充 handlesOut,枚举当前连接的控制器。
返回: int
写入
handlesOut
的句柄数量。
示例:ControllerHandle_t *controllerHandles = new ControllerHandle_t[];
SteamController()->GetConnectedControllers( controllerHandles );
GetControllerForGamepadIndex
ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
名称 | 类型 | 描述 |
nIndex | int | 您要为其获得控制器句柄的模拟手柄的索引。 |
返回指定模拟游戏手柄的相关控制器句柄。 可以与 GetInputTypeForHandle 一起使用,来判定使用 Steam 输入手柄模拟的控制器的类型。
返回: ControllerHandle_t示例:// 用您正在询问的 XInput 槽位代替。 这一数值在 0 至 3 之间
int nXinputSlotIndex = 0;
ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex );
if ( controllerHandle == 0 )
{
// 有效句柄不是 0,这是一个普通的 Xobx 控制器
}
else
{
ESteamInputType inputType = SteamController()->GetInputTypeForHandle(controllerHandle);
switch(inputType)
{
case k_ESteamInputType_Unknown:
printf("unknown\n!"); break;
case k_ESteamInputType_SteamController:
printf("Steam controller\n!"); break;
case k_ESteamInputType_XBox360Controller:
printf("XBox 360 controller\n!"); break;
case k_ESteamInputType_XBoxOneController:
printf("XBox One controller\n!"); break;
case k_ESteamInputType_GenericXInput:
printf("Generic XInput\n!"); break;
case k_ESteamInputType_PS4Controller:
printf("PS4 controller\n!"); break;
}
}
GetCurrentActionSet
ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle );
获取指定控制器当前激活的操作集。
返回: ControllerActionSetHandle_t 指定控制器激活的操作集的句柄。
示例:ControllerActionSetHandle_t controller1Set = SteamController()->GetCurrentActionSet(controller1Handle);
GetDigitalActionData
ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
返回当前所提供的数字游戏操作的状态。
返回: ControllerDigitalActionData_t指定数字操作的当前状态。
GetDigitalActionHandle
ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
名称 | 类型 | 描述 |
pszActionName | const char * | 在游戏的 VDF 文件中定义的数字操作的字符串标识符。 |
获取指定的数字操作的句柄。
注意: 此函数不接受操作集句柄参数。 这意味着 VDF 文件中的每个操作都必须有惟一的字符串标识符。 换言之,如果您在两个不同的操作集中使用了一个名为“向上”的操作,此函数将只返回其中一个,而忽略另一个。
返回: ControllerDigitalActionHandle_t指定的数字操作的句柄。
示例:ControllerDigitalActionHandle_t punchHandle = SteamController()->GetDigitalActionHandle( "punch" );
GetDigitalActionOrigins
int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
通过用
EControllerActionOrigin 句柄填充
originsOut
,获取一个操作集中某一数字操作的源。 用于显示该操作的相应屏幕提示。
返回: int
originsOut
中提供的源数量。
示例:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
GetGamepadIndexForController
int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
如果模拟一个游戏手柄,则返回指定控制器的相关游戏手柄索引。
返回: int
示例:int gamepadIndex = SteamController()->GetGamepadIndexForController( controller1Handle );
GetGlyphForActionOrigin
const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
获取某个特定源的屏幕字形的本地路径。
返回: const char *
字形的 png 文件的路径。
如:
"C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
示例://获取“punch”的源
EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
EControllerActionOrigin firstOrigin = origins[0]; //即 k_EControllerActionOrigin_PS4_X
//这是游戏自带函数,用来尝试获取自定义字形艺术
int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin );
//我们未在我们的游戏中对此源提供任何字形! 我猜测 Steam 已经添加了对一个新控制器的支持
//或者我们只是忘记添加了此艺术作品!
//(如:我们只有 Steam 控制器字形,但是这是一个 PlasyStation 4 控制器)
if( glyphTextureID == -1 )
{
//改为从 Steam 客户端获取图像。
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( firstOrigin );
printf( "path = %s\n", localGlyphPath ); // "路径 = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
//将文件路径转为可用游戏纹理的游戏函数
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
}
GetInputTypeForHandle
ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle );
返回指定控制器的输入样式(设备型号)。 这能告诉您是否给定控制器为 Steam 控制器、XBox 360 控制器、PS4 控制器等。 参见 Steam 的
支持的控制器数据库,了解详情。
返回: ESteamInputType示例:ESteamInputType inputType = SteamController()->GetInputTypeForHandle(controller1Handle);
switch(inputType)
{
case k_ESteamInputType_Unknown:
printf("unknown\n!"); break;
case k_ESteamInputType_SteamController:
printf("Steam controller\n!"); break;
case k_ESteamInputType_XBox360Controller:
printf("XBox 360 controller\n!"); break;
case k_ESteamInputType_XBoxOneController:
printf("XBox One controller\n!"); break;
case k_ESteamInputType_GenericXInput:
printf("Generic XInput\n!"); break;
case k_ESteamInputType_PS4Controller:
printf("PS4 controller\n!"); break;
}
GetMotionData
ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle );
返回指定控制器的原始运动数据。
返回: ControllerMotionData_t示例:ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
(从 Steam 的语言设置)返回指定源的本地化字符串。
返回: const char *
示例:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
const char * punchString = SteamController()->GetStringForActionOrigin( origins[0] );
printf("punch = %s\n",punchString);
Init
bool Init();
在开始使用
ISteamController 接口时必须调用。
返回: bool
始终返回
true。
示例:SteamController()->Init();
RunFrame
void RunFrame();
将 API 状态与可用的最新 Steam 控制器输入同步。 由 SteamAPI_RunCallbacks 自动执行,但是您可以在读取控制器状态之前直接调用此函数,以获得可能的绝对最低延迟。
示例:SteamController()->RunFrame();
SetLEDColor
void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
在支持的控制器上设置控制器的 LED 颜色。
注意:VSC 只支持白色,不支持任何其他颜色,并将 RGB 值解释为影响 Steam 按键 LED 的亮度的灰度值。
DS4 对全色信息作出响应,并利用值来设置光条的颜色及亮度。
示例:// 恢复控制器 1 的用户默认颜色:
SteamController()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault );
// 将控制器 2 的颜色设置为洋红色:
SteamController()->SetLEDColor( controller2Handle, 255, 0, 255, k_ESteamControllerLEDFlag_SetColor );
ShowAnalogActionOrigins
bool ShowAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition );
已弃用。
返回: bool
始终返回
true。
ShowBindingPanel
bool ShowBindingPanel( ControllerHandle_t controllerHandle );
调用 Steam 界面并打开绑定屏幕。
返回: bool
true 表示成功;如果界面被禁用或不可用,或者用户不在大屏幕模式下,则返回 false。
示例:SteamController()->ShowBindingPanel( myControllerHandle );
ShowDigitalActionOrigins
bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
已弃用。
返回: bool
始终返回
true。
Shutdown
bool Shutdown();
在结束使用
ISteamController 接口时必须调用。
返回: bool
始终返回
true。
示例:SteamController()->Shutdown();
StopAnalogActionMomentum
void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
停止模拟操作的动量(适用时,如有虚拟轨迹球设置的触控板)。
注意:这也会阻止所有相关联的触感。 当您想要向用户表明已达到某个操作的极限,如旋转一个轮播区或滚动网页时,这会非常有用。
示例:SteamController()->StopAnalogActionMomentum( controller1Handle, moveHandle );
TriggerHapticPulse
void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
在受支持的控制器上触发一个(低电平)的触感脉冲。
注意:目前只有 VSC 支持触感脉冲。
其他所有的控制器型号会忽略此 API 调用。
无符号短整型通常最大值为 65535,这意味着您可以用此方法触发的最长触感脉冲持续时间为 0.065535 秒(即少于 1/10 秒)。 此函数应被视为一个低级原语,以在高级用户函数中反复使用,生成更复杂的行为。
示例://脉冲一次,1/20 秒
SteamController()->TriggerHapticPulse(controller1Handle, k_ESteamControllerPad_Left, 50000);
TriggerRepeatedHapticPulse
void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags );
名称 | 类型 | 描述 |
controllerHandle | ControllerHandle_t | 要影响的控制器的句柄。 |
eTargetPad | ESteamControllerPad | 要影响的触感触控板。 |
usDurationMicroSec | unsigned short | 脉冲的持续时间,以微秒(1/1,000,000 秒)表示。 |
usOffMicroSec | unsigned short | 脉冲间隔的持续时间,以微秒表示。 |
unRepeat | unsigned short | 重复 usDurationMicroSec / usOffMicroSec 工作周期的次数。 |
nFlags | unsigned int | 目前未使用,保留供将来使用。 |
在支持的控制器上触发重复的触感脉冲。
注意:目前只有 VSC 支持触感脉冲。
对于不兼容控制器型号,此 API 调用将被忽略。
此调用能生成足够长时间的脉冲类型,以引起用户注意,因此比 TriggerHapticPulse 对用户更友好。
改变 usDurationMicroSec 和 usOffMicroSec 参数将改变触感脉冲的“纹理”。
示例://以每次 1/20 秒的开/关脉冲类型,发送 1 秒脉冲
SteamController()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );
TriggerVibration
void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
名称 | 类型 | 描述 |
controllerHandle | ControllerHandle_t | 要影响的控制器的句柄。 |
usLeftSpeed | unsigned short | 左侧振动马达的强度值。 |
usRightSpeed | unsigned short | 右侧振动马达的强度值。 |
在支持的控制器上触发一个振动事件。
注意:对于不兼容的控制器型号,此 API 调用将被忽略。
此调用将生成传统的“轰鸣”振动效果。
VSC 将使用其触感模拟传统的轰鸣声。
示例:SteamController()->TriggerVibration( controller1Handle, 10000, 10000 );
GetActionOriginFromXboxOrigin
EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
名称 | 类型 | 描述 |
controllerHandle | ControllerHandle_t | 要影响的控制器的句柄。 您可以使用 GetControllerForGamepadIndex 获取此句柄。 |
eOrigin | EXboxOrigin | 这是您想要为其获得图像的按钮。例如:k_EXboxOrigin_A |
返回: EControllerActionOrigin
获取可以在您的字形查找表中使用的操作源或传入 GetGlyphForActionOrigin 或 GetStringForActionOrigin 的操作源。
示例:int nXinputSlot = 1; // 为玩家替代正确的 Xinput 槽位
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A );
// 从 Steam 客户端获取图像。
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( buttonOrigin );
printf( "path = %s\n", localGlyphPath ); // "路径 = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
//将文件路径转为可用游戏纹理的游戏函数
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
TranslateActionOrigin
EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
名称 | 类型 | 描述 |
controllerHandle | ControllerHandle_t | 要影响的控制器的句柄。 您可以使用 GetControllerForGamepadIndex 获取此句柄。 |
eDestinationInputType | ESteamInputType | 您要转译的控制器类型。 如果使用了 k_ESteamInputType_Unknown,Steam 将采用与您的 SDK 版本最接近的类型。 |
eSourceOrigin | EControllerActionOrigin | 这是您要转译的按钮。 |
返回: EControllerActionOrigin
如果 eDestinationInputType 为 k_ESteamInputType_Unknown,获得与给定控制器类型或在游戏中集成的 SDK 中最接近的控制器类型等同的源。 此操作源可以用于您的字形查找表或传入 GetGlyphForActionOrigin 或 GetStringForActionOrigin
示例:int nXinputSlot = 1; // 为玩家替代正确的 Xinput 槽位
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //如,k_EControllerActionOrigin_PS4_X
if ( buttonOrigin >= k_EControllerActionOrigin_Count )
{
// 我们未在我们的游戏中为此源发布任何艺术作品! 我想 Steam 已添加了
// 对一个新控制器的支持。 让我们获取我们使用的 SDK 所支持的最接近值。
buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin )
}
// 这是游戏自带函数,用来尝试获取自定义字形艺术
int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );
GetControllerBindingRevision
bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
返回: bool - 如果成功找到设备绑定设置,为 true;如果绑定设置仍在载入,为 false。
为 Steam 输入 API 配置获取设备绑定设置的重大与轻微更改。 小型更改适用于在配置中添加新选项操作或更新本地化等小幅度的变更。 进行小型更改时,只需上传一个新配置,并勾选“使用操作块”标记。 重大更改适用于操作集数量改变,或重写配置使旧配置不再可用时的情况。 当用户的绑定与当前官方配置的重大改变不符时,Steam 将强制更新用户的配置至新配置。 在有重大更改的更新时,需要为各个控制器设置新配置。
代码示例:int nMinor = -1;
int nMinor = -1;
const int nCurrentMajorRevision = 1;
const int nCurrentMinorRevision = 1;
if ( GetControllerBindingRevision( controllerHandle, &nMajor, &nMinor ) )
{
if ( nMinorRevision != nCurrentMinorRevision )
{
// 小型更改过期,但仍可用
// 下次编辑配置时将进行修复
}
if ( nMajorRevision != nCurrentMajorRevision )
{
// 应只在 Steam 检测到时短暂出现
// 然后强制用户更新至最新的官方配置
}
}
else
{
// 尚为对此控制器载入该配置
}
游戏内操作文件用法示例:"In Game Actions"
{
"major_revision" "0"
“minor_revision” “1”
"actions"
{
...
结构
以下为 ISteamController 中的函数可能返回和/或与之交互的结构。
ControllerAnalogActionData_t
表示模拟操作的当前状态。
注意: - 确切的值、范围等取决于配置,但是(大致来讲)传统的模拟操作将提供在 -1.0 到 1.0 的范围内的标准浮点值,而鼠标类操作将提供增量更新,指明自上一帧开始“像素”移动的数量。 这样做的结果是,鼠标类操作将提供更大的绝对 x 和 y 值,并且与上一个记录的输入位置相对;而传统的模拟操作则提供较小值,且与中央物理锚点相对。
- 虽然由鼠标类操作提供的增量非常类似于操作系统所提供的像素增量,但 SC 增量是浮点数,而不是 int。 这意味着当将此数据映射到摄像头旋转时,会导致潜在量化的减少与精度的降低。
- 在单轴模拟输入(例如模拟扳机键)的情况下,只有 x 轴会包含数据,而 y 轴始终为 0。
名称 | 类型 | 描述 |
eMode | EControllerSourceMode | 来自该操作的数据的类型,与操作集的 VDF 定义中指定的数据相匹配。 |
x | float | 此操作在水平轴上的当前状态。 |
y | float | 此操作在垂直轴上的当前状态。 |
bActive | bool | 当前是否可以将该操作绑定到有效操作集。 如果不可用,或不属于激活操作集,则为 false。 |
ControllerDigitalActionData_t
代表数字操作的当前状态。
名称 | 类型 | 描述 |
bState | bool | 此操作的当前状态;若此操作当前被按下,为 true,反之则为 false。 |
bActive | bool | 当前是否可以将该操作绑定到有效操作集。 |
ControllerMotionData_t
表示设备运动传感器的当前状态。
注意: 对于 rotQuatX/rotQuatY/rotQuatZ,控制器上的惯性测量单元将创建一个基于融合陀螺仪和加速计的四元数。 此值是控制器的绝对方位,但会在偏航轴上漂移。
名称 | 类型 | 描述 |
rotQuatX | float | 传感器融合的绝对旋转(在航向中漂移),x 轴 |
rotQuatY | float | 传感器融合的绝对旋转(在航向中漂移),y 轴 |
rotQuatZ | float | 传感器融合的绝对旋转(在航向中漂移),z 轴 |
rotQuatW | float | 传感器融合的绝对旋转(在航向中漂移),w 轴 |
posAccelX | float | 位置加速度,x 轴 |
posAccelY | float | 位置加速度,y 轴 |
posAccelZ | float | 位置加速度,z 轴 |
rotVelX | float | 角速度,x 轴 |
rotVelY | float | 角速度,y 轴 |
rotVelZ | float | 角速度,z 轴 |
枚举
以下为定义来与 ISteamController 一起使用的枚举。
EControllerActionOrigin
玩家在 Steam 输入配置器中为操作绑定的输入。 这些值的主要目的是指示对于某个给定操作,应在屏幕上显示什么按键字形,例如“按 [A] 跳跃”。
名称 | 值 | 描述 |
k_EControllerActionOrigin_None | 0 | |
k_EControllerActionOrigin_A | 1 | (Valve Steam 控制器)数字正面按键 A |
k_EControllerActionOrigin_B | 2 | (Valve Steam 控制器)数字正面按键 B |
k_EControllerActionOrigin_X | 3 | (Valve Steam 控制器)数字正面按键 X |
k_EControllerActionOrigin_Y | 4 | (Valve Steam 控制器)数字正面按键 Y |
k_EControllerActionOrigin_LeftBumper | 5 | (Valve Steam 控制器)数字左缓冲键(即 LB 键) |
k_EControllerActionOrigin_RightBumper | 6 | (Valve Steam 控制器)数字右缓冲键(即 RB 键) |
k_EControllerActionOrigin_LeftGrip | 7 | (Valve Steam 控制器)数字左握持键 |
k_EControllerActionOrigin_RightGrip | 8 | (Valve Steam 控制器)数字右握持键 |
k_EControllerActionOrigin_Start | 9 | (Valve Steam 控制器)数字开始键 |
k_EControllerActionOrigin_Back | 10 | (Valve Steam 控制器)数字返回键 |
k_EControllerActionOrigin_LeftPad_Touch | 11 | (Valve Steam 控制器)左触控板,单指简单触碰 |
k_EControllerActionOrigin_LeftPad_Swipe | 12 | (Valve Steam 控制器)左触控板,任何轴触碰输入 |
k_EControllerActionOrigin_LeftPad_Click | 13 | (Valve Steam 控制器)左触控板,数字点击(整体) |
k_EControllerActionOrigin_LeftPad_DPadNorth | 14 | (Valve Steam 控制器)左触控板,数字点击(上象限) |
k_EControllerActionOrigin_LeftPad_DPadSouth | 15 | (Valve Steam 控制器)左触控板,数字点击(下象限) |
k_EControllerActionOrigin_LeftPad_DPadWest | 16 | (Valve Steam 控制器)左触控板,数字点击(左象限) |
k_EControllerActionOrigin_LeftPad_DPadEast | 17 | (Valve Steam 控制器)左触控板,数字点击(右象限) |
k_EControllerActionOrigin_RightPad_Touch | 18 | (Valve Steam 控制器)右触控板,单指简单触碰 |
k_EControllerActionOrigin_RightPad_Swipe | 19 | (Valve Steam 控制器)右触控板,任何轴触碰输入 |
k_EControllerActionOrigin_RightPad_Click | 20 | (Valve Steam 控制器)右触控板,数字点击(整体) |
k_EControllerActionOrigin_RightPad_DPadNorth | 21 | (Valve Steam 控制器)右触控板,数字点击(上象限) |
k_EControllerActionOrigin_RightPad_DPadSouth | 22 | (Valve Steam 控制器)右触控板,数字点击(下象限) |
k_EControllerActionOrigin_RightPad_DPadWest | 23 | (Valve Steam 控制器)右触控板,数字点击(左象限) |
k_EControllerActionOrigin_RightPad_DPadEast | 24 | (Valve Steam 控制器)右触控板,数字点击(右象限) |
k_EControllerActionOrigin_LeftTrigger_Pull | 25 | (Valve Steam 控制器)左模拟扳机键,任何力度扣动(模拟值) |
k_EControllerActionOrigin_LeftTrigger_Click | 26 | (Valve Steam 控制器)左模拟扳机键,扣动到底(数字值) |
k_EControllerActionOrigin_RightTrigger_Pull | 27 | (Valve Steam 控制器)右模拟扳机键,任何力度扣动(模拟值) |
k_EControllerActionOrigin_RightTrigger_Click | 28 | (Valve Steam 控制器)右模拟扳机键,扣动到底(数字值) |
k_EControllerActionOrigin_LeftStick_Move | 29 | (Valve Steam 控制器)左摇杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_LeftStick_Click | 30 | (Valve Steam 控制器)左摇杆,点击(数字值) |
k_EControllerActionOrigin_LeftStick_DPadNorth | 31 | (Valve Steam 控制器)左摇杆,数字运动(上象限) |
k_EControllerActionOrigin_LeftStick_DPadSouth | 32 | (Valve Steam 控制器)左摇杆,数字运动(下象限) |
k_EControllerActionOrigin_LeftStick_DPadWest | 33 | (Valve Steam 控制器)左摇杆,数字运动(左象限) |
k_EControllerActionOrigin_LeftStick_DPadEast | 34 | (Valve Steam 控制器)左摇杆,数字运动(右象限) |
k_EControllerActionOrigin_Gyro_Move | 35 | (Valve Steam 控制器)陀螺仪,任何轴模拟运动 |
k_EControllerActionOrigin_Gyro_Pitch | 36 | (Valve Steam 控制器)陀螺仪,倾斜轴模拟运动(向上指向天花板,向下指向地板) |
k_EControllerActionOrigin_Gyro_Yaw | 37 | (Valve Steam 控制器)陀螺仪,偏航轴模拟运动(向左转面对一面墙,向右转面对另一面墙) |
k_EControllerActionOrigin_Gyro_Roll | 38 | (Valve Steam 控制器)陀螺仪,滚转轴模拟运动(斜向左朝向一边肩膀,斜向右朝向另一边肩膀) |
k_EControllerActionOrigin_PS4_X | 39 | (Sony Dualshock 4)数字正面 X 键 |
k_EControllerActionOrigin_PS4_Circle | 40 | (Sony Dualshock 4)数字正面圆圈键 |
k_EControllerActionOrigin_PS4_Triangle | 41 | (Sony Dualshock 4)数字正面三角形键 |
k_EControllerActionOrigin_PS4_Square | 42 | (Sony Dualshock 4)数字正面方形键 |
k_EControllerActionOrigin_PS4_LeftBumper | 43 | (Sony Dualshock 4)数字左缓冲键(即 L1 键) |
k_EControllerActionOrigin_PS4_RightBumper | 44 | (Sony Dualshock 4)数字右缓冲键(即 R1 键) |
k_EControllerActionOrigin_PS4_Options | 45 | (Sony Dualshock 4)数字 Options 键(即 Start 键) |
k_EControllerActionOrigin_PS4_Share | 46 | (Sony Dualshock 4)数字 SHARE 键(即返回键) |
k_EControllerActionOrigin_PS4_LeftPad_Touch | 47 | (Sony Dualshock 4)左半部触摸板,单指简单触碰 |
k_EControllerActionOrigin_PS4_LeftPad_Swipe | 48 | (Sony Dualshock 4)左半部触摸板,任何轴触碰输入 |
k_EControllerActionOrigin_PS4_LeftPad_Click | 49 | (Sony Dualshock 4)左半部触摸板,数字点击(整体) |
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth | 50 | (Sony Dualshock 4)左半部触摸板,数字点击(上象限) |
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth | 51 | (Sony Dualshock 4)左半部触摸板,数字点击(下象限) |
k_EControllerActionOrigin_PS4_LeftPad_DPadWest | 52 | (Sony Dualshock 4)左半部触摸板,数字点击(左象限) |
k_EControllerActionOrigin_PS4_LeftPad_DPadEast | 53 | (Sony Dualshock 4)左半部触摸板,数字点击(右象限) |
k_EControllerActionOrigin_PS4_RightPad_Touch | 54 | (Sony Dualshock 4)右半部触摸板,单指简单触碰 |
k_EControllerActionOrigin_PS4_RightPad_Swipe | 55 | (Sony Dualshock 4)左半部触摸板,任何轴触碰输入 |
k_EControllerActionOrigin_PS4_RightPad_Click | 56 | (Sony Dualshock 4)右半部触摸板,数字点击(整体) |
k_EControllerActionOrigin_PS4_RightPad_DPadNorth | 57 | (Sony Dualshock 4)右半部触摸板,数字点击(上象限) |
k_EControllerActionOrigin_PS4_RightPad_DPadSouth | 58 | (Sony Dualshock 4)右半部触摸板,数字点击(下象限) |
k_EControllerActionOrigin_PS4_RightPad_DPadWest | 59 | (Sony Dualshock 4)右半部触摸板,数字点击(左象限) |
k_EControllerActionOrigin_PS4_RightPad_DPadEast | 60 | (Sony Dualshock 4)右半部触摸板,数字点击(右象限) |
k_EControllerActionOrigin_PS4_CenterPad_Touch | 61 | (Sony Dualshock 4)统一触摸板,单指简单触碰 |
k_EControllerActionOrigin_PS4_CenterPad_Swipe | 62 | (Sony Dualshock 4)统一触摸板,任何轴触碰输入 |
k_EControllerActionOrigin_PS4_CenterPad_Click | 63 | (Sony Dualshock 4)统一触摸板,数字点击(整体) |
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth | 64 | (Sony Dualshock 4)统一触摸板,数字点击(上象限) |
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth | 65 | (Sony Dualshock 4)统一触摸板,数字点击(下象限) |
k_EControllerActionOrigin_PS4_CenterPad_DPadWest | 66 | (Sony Dualshock 4)统一触摸板,数字点击(左象限) |
k_EControllerActionOrigin_PS4_CenterPad_DPadEast | 67 | (Sony Dualshock 4)统一触摸板,数字点击(右象限) |
k_EControllerActionOrigin_PS4_LeftTrigger_Pull | 68 | (Sony Dualshock 4)左模拟扳机键(L2 键),任何力度扣动(模拟值) |
k_EControllerActionOrigin_PS4_LeftTrigger_Click | 69 | (Sony Dualshock 4)左模拟扳机键(L2 键),扣动到底(数字值) |
k_EControllerActionOrigin_PS4_RightTrigger_Pull | 70 | (Sony Dualshock 4)右模拟扳机键(R2 键),任何力度扣动(模拟值) |
k_EControllerActionOrigin_PS4_RightTrigger_Click | 71 | (Sony Dualshock 4)右模拟扳机键(R2 键),扣动到底(数字值) |
k_EControllerActionOrigin_PS4_LeftStick_Move | 72 | (Sony Dualshock 4)左操作杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_PS4_LeftStick_Click | 73 | (Sony Dualshock 4)左操作杆,点击(数字值) |
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth | 74 | (Sony Dualshock 4)左操作杆,数字运动(上象限) |
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth | 75 | (Sony Dualshock 4)左操作杆,数字运动(下象限) |
k_EControllerActionOrigin_PS4_LeftStick_DPadWest | 76 | (Sony Dualshock 4)左操作杆,数字运动(左象限) |
k_EControllerActionOrigin_PS4_LeftStick_DPadEast | 77 | (Sony Dualshock 4)左操作杆,数字运动(右象限) |
k_EControllerActionOrigin_PS4_RightStick_Move | 78 | (Sony Dualshock 4)右操作杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_PS4_RightStick_Click | 79 | (Sony Dualshock 4)右操作杆,点击(数字值) |
k_EControllerActionOrigin_PS4_RightStick_DPadNorth | 80 | (Sony Dualshock 4)右操作杆,数字运动(上象限) |
k_EControllerActionOrigin_PS4_RightStick_DPadSouth | 81 | (Sony Dualshock 4)右操作杆,数字运动(下象限) |
k_EControllerActionOrigin_PS4_RightStick_DPadWest | 82 | (Sony Dualshock 4)右操作杆,数字运动(左象限) |
k_EControllerActionOrigin_PS4_RightStick_DPadEast | 83 | (Sony Dualshock 4)右操作杆,数字运动(右象限) |
k_EControllerActionOrigin_PS4_DPad_North | 84 | (Sony Dualshock 4)方向键,按下(上象限) |
k_EControllerActionOrigin_PS4_DPad_South | 85 | (Sony Dualshock 4)方向键,按下(下象限) |
k_EControllerActionOrigin_PS4_DPad_West | 86 | (Sony Dualshock 4)方向键,按下(左象限) |
k_EControllerActionOrigin_PS4_DPad_East | 87 | (Sony Dualshock 4)方向键,按下(右象限) |
k_EControllerActionOrigin_PS4_Gyro_Move | 88 | (Sony Dualshock 4)陀螺仪,任何轴模拟运动 |
k_EControllerActionOrigin_PS4_Gyro_Pitch | 89 | (Sony Dualshock 4)陀螺仪,倾斜轴模拟运动(向上指向天花板,向下指向地板) |
k_EControllerActionOrigin_PS4_Gyro_Yaw | 90 | (Sony Dualshock 4)陀螺仪,偏航轴模拟运动(向左转面对一面墙,向右转面对另一面墙) |
k_EControllerActionOrigin_PS4_Gyro_Roll | 91 | (Sony Dualshock 4)陀螺仪,滚转轴模拟运动(斜向左朝向一边肩膀,斜向右朝向另一边肩膀) |
k_EControllerActionOrigin_XBoxOne_A | 92 | (XB1)数字正面键 A |
k_EControllerActionOrigin_XBoxOne_B | 93 | (XB1)数字正面键 B |
k_EControllerActionOrigin_XBoxOne_X | 94 | (XB1)数字正面键 X |
k_EControllerActionOrigin_XBoxOne_Y | 95 | (XB1)数字正面键 Y |
k_EControllerActionOrigin_XBoxOne_LeftBumper | 96 | (XB1)数字左缓冲键(即 LB 键) |
k_EControllerActionOrigin_XBoxOne_RightBumper | 97 | (XB1)数字右缓冲键(即 RB 键) |
k_EControllerActionOrigin_XBoxOne_View | 99 | (XB1)数字视图键(即 Back 键) |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull | 100 | (XB1)左模拟扳机键,任何力度扣动(模拟值) |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click | 101 | (XB1)左模拟扳机键,扣动到底(数字值) |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull | 102 | (XB1)右模拟扳机键,任何力度扣动(模拟值) |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click | 103 | (XB1)右模拟扳机键,扣动到底(数字值) |
k_EControllerActionOrigin_XBoxOne_LeftStick_Move | 104 | (XB1)左摇杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_XBoxOne_LeftStick_Click | 105 | (XB1)左摇杆,点击(数字值) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth | 106 | (XB1)左摇杆,数字运动(上象限) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth | 107 | (XB1)左摇杆,数字运动(下象限) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest | 108 | (XB1)左摇杆,数字运动(左象限) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast | 109 | (XB1)左摇杆,数字运动(右象限) |
k_EControllerActionOrigin_XBoxOne_RightStick_Move | 110 | (XB1)右摇杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_XBoxOne_RightStick_Click | 111 | (XB1)右摇杆,点击(数字值) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth | 112 | (XB1)右摇杆,数字运动(上象限) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth | 113 | (XB1)右摇杆,数字运动(下象限) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest | 114 | (XB1)右摇杆,数字运动(左象限) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast | 115 | (XB1)右摇杆,数字运动(右象限) |
k_EControllerActionOrigin_XBoxOne_DPad_North | 116 | (XB1)方向键,按下(上象限) |
k_EControllerActionOrigin_XBoxOne_DPad_South | 117 | (XB1)方向键,按下(下象限) |
k_EControllerActionOrigin_XBoxOne_DPad_West | 118 | (XB1)方向键,按下(左象限) |
k_EControllerActionOrigin_XBoxOne_DPad_East | 119 | (XB1)方向键,按下(右象限) |
k_EControllerActionOrigin_XBox360_A | 120 | (X360)数字正面键 A |
k_EControllerActionOrigin_XBox360_B | 121 | (X360)数字正面键 B |
k_EControllerActionOrigin_XBox360_X | 122 | (X360)数字正面键 X |
k_EControllerActionOrigin_XBox360_Y | 123 | (X360)数字正面键 Y |
k_EControllerActionOrigin_XBox360_LeftBumper | 124 | (X360)数字左缓冲键(即 LB 键) |
k_EControllerActionOrigin_XBox360_RightBumper | 125 | (X360)数字右缓冲键(即 RB 键) |
k_EControllerActionOrigin_XBox360_Start | 126 | (X360)数字开始键 |
k_EControllerActionOrigin_XBox360_Back | 127 | (X360)数字返回键 |
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull | 128 | (X360)左模拟扳机键,任何力度扣动(模拟值) |
k_EControllerActionOrigin_XBox360_LeftTrigger_Click | 129 | (X360)左模拟扳机键,扣动到底(数字值) |
k_EControllerActionOrigin_XBox360_RightTrigger_Pull | 130 | (X360)右模拟扳机键,任何力度扣动(模拟值) |
k_EControllerActionOrigin_XBox360_RightTrigger_Click | 131 | (X360)右模拟扳机键,扣动到底(数字值) |
k_EControllerActionOrigin_XBox360_LeftStick_Move | 132 | (X360)左摇杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_XBox360_LeftStick_Click | 133 | (X360)左摇杆,点击(数字值) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth | 134 | (X360)左摇杆,数字运动(上象限) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth | 135 | (X360)左摇杆,数字运动(下象限) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest | 136 | (X360)左摇杆,数字运动(左象限) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast | 137 | (X360)左摇杆,数字运动(右象限) |
k_EControllerActionOrigin_XBox360_RightStick_Move | 138 | (X360)右摇杆,任何轴运动(模拟值) |
k_EControllerActionOrigin_XBox360_RightStick_Click | 139 | (X360)右摇杆,点击(数字值) |
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth | 140 | (X360)右摇杆,数字运动(上象限) |
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth | 141 | (X360)右摇杆,数字运动(下象限) |
k_EControllerActionOrigin_XBox360_RightStick_DPadWest | 142 | (X360)右摇杆,数字运动(左象限) |
k_EControllerActionOrigin_XBox360_RightStick_DPadEast | 143 | (X360)右摇杆,数字运动(右象限) |
k_EControllerActionOrigin_XBox360_DPad_North | 144 | (X360)方向键,按下(上象限) |
k_EControllerActionOrigin_XBox360_DPad_South | 145 | (X360)方向键,按下(下象限) |
k_EControllerActionOrigin_XBox360_DPad_West | 146 | (X360)方向键,按下(左象限) |
k_EControllerActionOrigin_XBox360_DPad_East | 147 | (X360)方向键,按下(右象限) |
k_EControllerActionOrigin_Count | 196 | 此枚举中的值的数量,有助于循环访问。 |
EControllerSource
控制器的一个区域,可以视为一个更大的抽象模块单元,可对其应用各种模式并输出有用数据。 例如,摇杆可以被当作单个模拟输入,或者被分成四个离散的数字输入,组成一个虚拟十字键。 同样地,ABXY 正面按键自成一组,可作为四个独立按键,或者一个虚拟十字键的组件,等等。
名称 | 值 | 描述 |
k_EControllerSource_None | 0 | 无控制器源。 |
k_EControllerSource_LeftTrackpad | 1 | 左触控板,或者是中央触控板的左半部分。 |
k_EControllerSource_RightTrackpad | 2 | 右触控板,或者是中央触控板的右半部分。 |
k_EControllerSource_Joystick | 3 | 摇杆,或如存在多个摇杆,则为左摇杆。 |
k_EControllerSource_ABXY | 4 | 四个主要正面按键。 |
k_EControllerSource_Switch | 5 | 控制器上不属于任何其他指定源的开关/按键 这包括缓冲键、开始/选择键及握持键。 此特殊失配情况不适合更大的范式,因此有其自己的数字按键,也有处理其的相应模式。 |
k_EControllerSource_LeftTrigger | 6 | 左模拟扳机键。 |
k_EControllerSource_RightTrigger | 7 | 右模拟扳机键。 |
k_EControllerSource_Gyro | 8 | 内部陀螺仪。 |
k_EControllerSource_CenterTrackpad | 9 | 中央触控板 (仅限 DS4)。 |
k_EControllerSource_RightJoystick | 10 | 右摇杆。 如果只有一个摇杆,则不使用此源。 |
k_EControllerSource_DPad | 11 | 数字触板。 |
k_EControllerSource_Key | 12 | 键盘键(用于带扫描码的键盘)。 |
k_EControllerSource_Mouse | 13 | 传统鼠标 |
k_EControllerSource_Count | 14 | 枚举的数量,有助于循环访问。 |
EControllerSourceMode
配置器在控制器源上施加的虚拟输入模式。 例如,配置器可以让模拟摇杆像一个带有四个数字输入的十字键一样使用;EControllerSource 将为 k_EControllerSource_Joystick,而 EControllerSourceMode 为 k_EControllerSourceMode_Dpad。 此模式还会更改任何关联操作所接收的输入数据。
名称 | 值 | 描述 |
k_EControllerSourceMode_None | 0 | 无输入模式。 |
k_EControllerSourceMode_Dpad | 1 | 十字键:四个数字方向键以十字形组合在一起,在任何时候,每个轴上只能按下一个键。 |
k_EControllerSourceMode_Buttons | 2 | |
k_EControllerSourceMode_FourButtons | 3 | 四个数字正面按键,任何一个皆可同时按下。 |
k_EControllerSourceMode_AbsoluteMouse | 4 | |
k_EControllerSourceMode_RelativeMouse | 5 | |
k_EControllerSourceMode_JoystickMove | 6 | |
k_EControllerSourceMode_JoystickMouse | 7 | |
k_EControllerSourceMode_JoystickCamera | 8 | |
k_EControllerSourceMode_ScrollWheel | 9 | |
k_EControllerSourceMode_Trigger | 10 | |
k_EControllerSourceMode_MouseJoystick | 12 | |
k_EControllerSourceMode_MouseRegion | 13 | |
k_EControllerSourceMode_SingleButton | 15 | |
k_EControllerSourceMode_Switches | 16 | |
ESteamControllerLEDFlag
控制 Steam 控制器设备的 LED 颜色(如果设备有 LED 的话)。
注意:VSC 有一个 LED,但只有亮度会受到影响(颜色始终为白色)。
DS4 的 LED 为灯条,其颜色和亮度均可配置。
名称 | 值 | 描述 |
k_ESteamControllerLEDFlag_SetColor | 0 | 将颜色设为指定的值。 |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | 将颜色恢复为(游戏外)默认设置。 |
ESteamInputType
表示给定硬件的设备型号。
名称 | 值 | 描述 |
k_ESteamInputType_Unknown | 0 | 用于所有未识别的设备 |
k_ESteamInputType_SteamController | 1 | Valve Steam 控制器 |
k_ESteamInputType_XBox360Controller | 2 | Microsoft XBox 360 控制器 |
k_ESteamInputType_XBoxOneController | 3 | Microsoft Xbox One 控制器 |
k_ESteamInputType_GenericXInput | 4 | 任何通用的第三方 XInput 设备 |
k_ESteamInputType_PS4Controller | 5 | Sony PlayStation 4 控制器 |
k_ESteamInputType_AppleMFiController | 6 | 未使用 |
k_ESteamInputType_AndroidController | 7 | 未使用 |
k_ESteamInputType_SwitchJoyConPair | 8 | 未使用 |
k_ESteamInputType_SwitchJoyConSingle | 9 | 未使用 |
k_ESteamInputType_SwitchProController | 10 | 任天堂 Switch Pro 控制器 |
k_ESteamInputType_MobileTouch | 11 | Steam 流式应用移动触控控制器 |
k_ESteamInputType_PS3Controller | 12 | Sony Playstation 3 控制器或兼容 PS3/PS4 的格斗摇杆 |
k_ESteamInputType_Count | 13 | 目前返回的值的数量 |
k_ESteamInputType_MaximumPossibleValue | 255 | 返回的可能的最大值 |
ESteamControllerPad
Steam 控制器设备上的触摸板区域。
注意:注意:在 VSC 上,这些值对应于左和右触控板。
在 DS4 上,这些值对应于中央单触控板的左半部和右半部。
名称 | 值 | 描述 |
k_ESteamControllerPad_Left | 0 | Steam 控制器设备上的左触控板区域。 兼容型号:VSC、DS4 |
k_ESteamControllerPad_Right | 1 | Steam 控制器设备上的右触控板区域。 兼容型号:VSC、DS4 |
Typedef
以下为经过定义来与 ISteamController 一起使用的 typedef。
常量
以下为定义来与 ISteamController 一起使用的常量。
名称 | 类型 | 值 | 描述 |
STEAMCONTROLLER_INTERFACE_VERSION | const char * | "SteamController007" | |
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS | int | UINT64_MAX | 在向特定控制器句柄发送选项时,您可以使用此特殊值替代句柄来将选项发送到所有控制器。 |
STEAM_CONTROLLER_MAX_ANALOG_ACTIONS | int | 16 | 各控制器上可执行的模拟操作的最大数量。 |
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA | float | 1.0f | 任何给定轴上的模拟操作能够报告的最大值。 |
STEAM_CONTROLLER_MAX_COUNT | int | 16 | 能与 Steam 输入配置器同时使用的控制器的最大数量。 |
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS | int | 128 | 各控制器上可执行的数字操作的最大数量。 |
STEAM_CONTROLLER_MAX_ORIGINS | int | 8 | 能附加于单个操作的输入源的最大数量。 |
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA | float | -1.0f | 任何给定轴上的模拟操作能够报告的最小值。 |