Steam 控制器支援 API。
This API has been deprecated in favor of ISteamInput - please see
ISteamInput 介面 for API info
See the
Steam 輸入 documentation for more information.
成員函式
Member functions for
ISteamController
are called through the global accessor function
SteamController()
.
ActivateActionSet
void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
Reconfigure the controller to use the specified action set (ie "Menu", "Walk", or "Drive").
This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in your state loops, instead of trying to place it in all of your state transitions.
範例: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 );
Reconfigure the controller to use the specified action set layer.
See the
操作組合階層 article for full details and an in-depth practical example.
範例:SteamController()->ActivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateActionSetLayer
void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
Reconfigure the controller to stop using the specified action set layer.
範例:SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateAllActionSetLayers
void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
Reconfigure the controller to stop using all action set layers.
範例:SteamController()->DeactivateAllActionSetLayers( controllerHandle1 );
GetActiveActionSetLayers
int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
Fill an array with all of the currently active action set layers for a specified controller handle.
範例:ControllerHandle_t *handlesOut = new ControllerHandle_t [];
SteamController()->GetActiveActionSetLayers( controllerHandle1, &handlesOut );
GetActionSetHandle
ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
名稱 | 型別 | 說明 |
pszActionSetName | const char * | 在遊戲的 VDF 檔中定義的操作組合識別字串。 |
Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls.
傳回: ControllerActionSetHandle_tThe handle of the specified action set.
範例:ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );
GetAnalogActionData
ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
Returns the current state of the supplied analog game action.
傳回: ControllerAnalogActionData_tThe current state of the specified analog action.
範例:ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
名稱 | 型別 | 說明 |
pszActionName | const char * | 遊戲的 VDF 檔中定義的類比動作的識別字串。 |
Get the handle of the specified Analog action.
備註: This function does not take an action set handle parameter. That means that each action in your VDF file must have a unique string identifier. In other words, if you use an action called "up" in two different action sets, this function will only ever return one of them and the other will be ignored.
傳回: ControllerAnalogActionHandle_tThe handle of the specified analog action.
範例:ControllerAnalogActionHandle_t moveHandle = SteamController()->GetAnalogActionHandle( "move" );
GetAnalogActionOrigins
int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
Get the origin(s) for an analog action within an action set by filling originsOut with EControllerActionOrigin handles. Use this to display the appropriate on-screen prompt for the action.
傳回: int
The number of origins supplied in
originsOut
.
範例:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );
GetConnectedControllers
int GetConnectedControllers( ControllerHandle_t *handlesOut );
Enumerates currently connected controllers by filling handlesOut with controller handles.
傳回: int
The number of handles written to
handlesOut
.
範例:ControllerHandle_t *controllerHandles = new ControllerHandle_t[];
SteamController()->GetConnectedControllers( controllerHandles );
GetControllerForGamepadIndex
ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
名稱 | 型別 | 說明 |
nIndex | int | 欲取得其控制器控制代碼的模擬手把的索引。 |
Returns the associated controller handle for the specified emulated gamepad. Can be used with GetInputTypeForHandle to determine the controller type of a controller using Steam Input Gamepad Emulation.
傳回: ControllerHandle_t範例:// Replace with the Xinput Slot you are querying for. This number is between 0 and 3
int nXinputSlotIndex = 0;
ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex );
if ( controllerHandle == 0 )
{
// Valid handles are non-zero, this is a normal Xbox controller.
}
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 );
Get the currently active action set for the specified controller.
傳回: ControllerActionSetHandle_tThe handle of the action set activated for the specified controller.
範例:ControllerActionSetHandle_t controller1Set = SteamController()->GetCurrentActionSet(controller1Handle);
GetDigitalActionData
ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
Returns the current state of the supplied digital game action.
傳回: ControllerDigitalActionData_tThe current state of the specified digital action.
GetDigitalActionHandle
ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
名稱 | 型別 | 說明 |
pszActionName | const char * | 遊戲的 VDF 檔中定義的數位動作的識別字串。 |
Get the handle of the specified digital action.
備註: This function does not take an action set handle parameter. That means that each action in your VDF file must have a unique string identifier. In other words, if you use an action called "up" in two different action sets, this function will only ever return one of them and the other will be ignored.
傳回: ControllerDigitalActionHandle_tThe handle of the specified digital action.
範例:ControllerDigitalActionHandle_t punchHandle = SteamController()->GetDigitalActionHandle( "punch" );
GetDigitalActionOrigins
int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
Get the origin(s) for a digital action within an action set by filling
originsOut
with
EControllerActionOrigin handles. Use this to display the appropriate on-screen prompt for the action.
傳回: int
The number of origins supplied in
originsOut
.
範例:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
GetGamepadIndexForController
int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
Returns the associated gamepad index for the specified controller, if emulating a gamepad.
傳回: int
範例:int gamepadIndex = SteamController()->GetGamepadIndexForController( controller1Handle );
GetGlyphForActionOrigin
const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
Get a local path to art for on-screen glyph for a particular origin.
傳回: const char *
The path to the png file for the glyph.
E.g.
"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]; //i.e, 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 ); // 「path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png」
// 遊戲本身的函式,可將檔案路徑轉化為可使用的遊戲材質
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
}
GetInputTypeForHandle
ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle );
Returns the input type (device model) for the specified controller. This tells you if a given controller is a Steam controller, XBox 360 controller, PS4 controller, etc. For more details, see Steam's
Supported Controller Database.
傳回: 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 );
Returns raw motion data for the specified controller.
傳回: ControllerMotionData_t範例:ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
Returns a localized string (from Steam's language setting) for the specified origin.
傳回: 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();
Must be called when starting use of the
ISteamController interface.
傳回: bool
Always returns
true.
範例:SteamController()->Init();
RunFrame
void RunFrame();
Synchronize API state with the latest Steam Controller inputs available. This is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest possible latency, you can call this directly before reading controller state.
範例:SteamController()->RunFrame();
SetLEDColor
void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
Set the controller LED color on supported controllers.
備註:The VSC does not support any color but white, and will interpret the RGB values as a greyscale value affecting the brightness of the Steam button LED.
The DS4 responds to full color information and uses the values to set the color & brightness of the lightbar.
範例:// 將控制器 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 );
Deprecated.
傳回: bool
Always returns
true.
ShowBindingPanel
bool ShowBindingPanel( ControllerHandle_t controllerHandle );
Invokes the Steam overlay and brings up the binding screen.
傳回: bool
true for success;
false if overlay is disabled/unavailable, or the user is not in Big Picture Mode.
範例:SteamController()->ShowBindingPanel( myControllerHandle );
ShowDigitalActionOrigins
bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
Deprecated.
傳回: bool
Always returns
true.
Shutdown
bool Shutdown();
Must be called when ending use of the
ISteamController interface.
傳回: bool
Always returns
true.
範例:SteamController()->Shutdown();
StopAnalogActionMomentum
void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
Stops the momentum of an analog action (where applicable, ie a touchpad w/ virtual trackball settings).
備註:This will also stop all associated haptics. This is useful for situations where you want to indicate to the user that the limit of an action has been reached, such as spinning a carousel or scrolling a webpage.
範例:SteamController()->StopAnalogActionMomentum( controller1Handle, moveHandle );
TriggerHapticPulse
void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
Triggers a (low-level) haptic pulse on supported controllers.
備註:Currently only the VSC supports haptic pulses.
This API call will be ignored for all other controller models.
The typical max value of an unsigned short is 65535, which means the longest haptic pulse you can trigger with this method has a duration of 0.065535 seconds (ie, less than 1/10th of a second). This function should be thought of as a low-level primitive meant to be repeatedly used in higher-level user functions to generate more sophisticated behavior.
範例:// 進行一次 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 | 目前未使用,將保留至未來使用。 |
Triggers a repeated haptic pulse on supported controllers.
備註:Currently only the VSC supports haptic pulses.
This API call will be ignored for incompatible controller models.
This is a more user-friendly function to call than TriggerHapticPulse as it can generate pulse patterns long enough to be actually noticed by the user.
Changing the usDurationMicroSec and usOffMicroSec parameters will change the "texture" of the haptic pulse.
範例:// 以每 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 | The intensity value for the left rumble motor. |
usRightSpeed | unsigned short | The intensity value of the right rumble motor. |
Trigger a vibration event on supported controllers.
備註:This API call will be ignored for incompatible controller models.
This generates the traditional "rumble" vibration effect.
The VSC will emulate traditional rumble using its haptics.
範例:SteamController()->TriggerVibration( controller1Handle, 10000, 10000 );
GetActionOriginFromXboxOrigin
EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
名稱 | 型別 | 說明 |
controllerHandle | ControllerHandle_t | The handle of the controller to affect. You can use GetControllerForGamepadIndex to get this handle |
eOrigin | EXboxOrigin | This is the button you want to get the image for ex: k_EXboxOrigin_A |
Returns: EControllerActionOrigin
Get an action origin that you can use in your glyph look up table or passed into GetGlyphForActionOrigin or GetStringForActionOrigin
Example:int nXinputSlot = 1; // Substitute whatever the correct Xinput slot is for your player
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A );
// Get the image from the Steam client .
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( buttonOrigin );
printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
//a function from the game that turns a file path into a usable game texture
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
TranslateActionOrigin
EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
名稱 | 型別 | 說明 |
controllerHandle | ControllerHandle_t | The handle of the controller to affect. You can use GetControllerForGamepadIndex to get this handle |
eDestinationInputType | ESteamInputType | The controller type you want to translate to. Steam will pick the closest type from your SDK version if k_ESteamInputType_Unknown is used |
eSourceOrigin | EControllerActionOrigin | This is the button you want to translate |
Returns: EControllerActionOrigin
Get the equivalent origin for a given controller type or the closest controller type that existed in the SDK you built into your game if eDestinationInputType is k_ESteamInputType_Unknown. This action origin can be used in your glyph look up table or passed into GetGlyphForActionOrigin or GetStringForActionOrigin
Example:int nXinputSlot = 1; // Substitute whatever the correct Xinput slot is for your player
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //i.e, k_EControllerActionOrigin_PS4_X
if ( buttonOrigin >= k_EControllerActionOrigin_Count )
{
// We didn't ship any art in our game for this origin! 我想 Steam 已新增了
// 對一個新控制器的支援。 Let's get the closest value that was supported by the SDK we built against
buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin )
}
// This is a function from the game itself that tries to get custom glyph art
int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );
GetControllerBindingRevision
bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
傳回: bool - 如果成功找到裝置的按鍵配置,則為 true;如果按鍵配置仍在載入,則為 false。
Get's the major and minor device binding revisions for Steam Input API configurations. Minor revisions are for small changes such as adding a new option action or updating localization in the configuration. 為小型修訂進行更新時,只需要使用「使用動作區塊」旗標集更新一個新配置即可。 Major revisions are to be used when changing the number of action sets or otherwise reworking configurations to the degree that older configurations are no longer usable. When a user's binding disagree's with the major revision of the current official configuration Steam will forcibly update the user to the new configuration. New configurations will need to be made for every controller when updating the Major revision.
程式碼範例: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 增量是浮點數,而不是整數。 這代表將此資料對應至相機旋轉時,會導致潛在量化的減少與精準度的降低。
- 在單軸類比輸入(例如類比板機索引碼)的情況下,只有 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,控制器的慣性測量單元將建立一個融合陀螺儀和加速計的四元數。 此值為控制器的絕對方位,但會在偏航(yaw)軸上漂移。
名稱 | 型別 | 說明 |
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 Controller) digital left shoulder button (aka "left bumper") |
k_EControllerActionOrigin_RightBumper | 6 | (Valve Steam Controller) digital right shoulder button (aka "right bumper") |
k_EControllerActionOrigin_LeftGrip | 7 | (Valve Steam 控制器)數位左握持鍵。 |
k_EControllerActionOrigin_RightGrip | 8 | (Valve Steam 控制器)數位右握持鍵。 |
k_EControllerActionOrigin_Start | 9 | (Valve Steam 控制器)數位 Start 鍵。 |
k_EControllerActionOrigin_Back | 10 | (Valve Steam 控制器)數位 Back 鍵。 |
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)數位正面按鍵 ╳。 |
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) digital left shoulder button (aka "left bumper") |
k_EControllerActionOrigin_PS4_RightBumper | 44 | (Sony Dualshock 4) digital right shoulder button (aka "right bumper") |
k_EControllerActionOrigin_PS4_Options | 45 | (Sony Dualshock 4) digital options button (aka "Start") |
k_EControllerActionOrigin_PS4_Share | 46 | (Sony Dualshock 4) digital share button (aka "Back") |
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)左類比板機鍵,任何力度(類比值)的拉扣。 |
k_EControllerActionOrigin_PS4_LeftTrigger_Click | 69 | (Sony Dualshock 4)左類比板機鍵,拉扣到底(數位值)。 |
k_EControllerActionOrigin_PS4_RightTrigger_Pull | 70 | (Sony Dualshock 4)右類比板機鍵,任何力度(類比值)的拉扣。 |
k_EControllerActionOrigin_PS4_RightTrigger_Click | 71 | (Sony Dualshock 4)右類比板機鍵,拉扣到底(數位值)。 |
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) digital left shoulder button (aka "left bumper") |
k_EControllerActionOrigin_XBoxOne_RightBumper | 97 | (XB1) digital right shoulder button (aka "right bumper") |
k_EControllerActionOrigin_XBoxOne_View | 99 | (XB1) digital view button (aka "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) digital left shoulder button (aka "left bumper") |
k_EControllerActionOrigin_XBox360_RightBumper | 125 | (X360) digital right shoulder button (aka "right bumper") |
k_EControllerActionOrigin_XBox360_Start | 126 | (X360)數位 Start 鍵。 |
k_EControllerActionOrigin_XBox360_Back | 127 | (X360)數位 Back 鍵。 |
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 正面按鍵也自成一組,可作為四個獨立按鈕,或者虛擬方向件的元件等等。
Name | Value | Description |
k_EControllerSource_None | 0 | No controller source. |
k_EControllerSource_LeftTrackpad | 1 | The left touchpad, or the left half of a central touchpad. |
k_EControllerSource_RightTrackpad | 2 | The right touchpad, or the right half of a central touchpad. |
k_EControllerSource_Joystick | 3 | The joystick, or if there is more than one joystick, the left joystick. |
k_EControllerSource_ABXY | 4 | The four main face buttons. |
k_EControllerSource_Switch | 5 | Switches/buttons on the controller that don't belong to any other specific source. This includes bumpers, start/select, and grips. This special case of misfits don't fit into the larger paradigm and thus get their own source of digital buttons and a corresponding mode that processes them. |
k_EControllerSource_LeftTrigger | 6 | The left analog trigger. |
k_EControllerSource_RightTrigger | 7 | The right analog trigger. |
k_EControllerSource_Gyro | 8 | The internal gyroscope. |
k_EControllerSource_CenterTrackpad | 9 | The central touchpad. (DS4 only) |
k_EControllerSource_RightJoystick | 10 | The right joystick. If there is only one joystick, this source is not used. |
k_EControllerSource_DPad | 11 | The digital pad. |
k_EControllerSource_Key | 12 | Keyboard key (for keyboards with scan codes). |
k_EControllerSource_Mouse | 13 | Traditional mouse |
k_EControllerSource_Count | 14 | The number of enums, useful for iterating. |
EControllerSourceMode
The virtual input mode imposed by the configurator upon a controller source. For instance, the configurator can make an analog joystick behave like a Dpad with four digital inputs; the EControllerSource would be k_EControllerSource_Joystick and the EControllerSourceMode would be k_EControllerSourceMode_Dpad. The mode also changes the input data received by any associated actions.
Name | Value | Description |
k_EControllerSourceMode_None | 0 | No input mode. |
k_EControllerSourceMode_Dpad | 1 | A digital pad -- four digital directional buttons fused together in a cross pattern, such that only one button from each axis can be pressed at any given time. |
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 顏色(若適用)。
備註:VSC 具 LED,但只能更改其亮度(顏色永遠為白色)。
DS4 的 LED 為燈條,其顏色和亮度皆可設定。
Name | Value | Description |
k_ESteamControllerLEDFlag_SetColor | 0 | Set the color to the specified values |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | Restore the color to default (out-of-game) settings |
ESteamInputType
代表指定的硬體的裝置型號。
Name | Value | Description |
k_ESteamInputType_Unknown | 0 | Catch-all for unrecognized devices |
k_ESteamInputType_SteamController | 1 | Valve's Steam Controller |
k_ESteamInputType_XBox360Controller | 2 | Microsoft's XBox 360 Controller |
k_ESteamInputType_XBoxOneController | 3 | Microsoft's XBox One Controller |
k_ESteamInputType_GenericXInput | 4 | Any generic 3rd-party XInput device |
k_ESteamInputType_PS4Controller | 5 | Sony's Playstation 4 Controller |
k_ESteamInputType_AppleMFiController | 6 | Unused |
k_ESteamInputType_AndroidController | 7 | Unused |
k_ESteamInputType_SwitchJoyConPair | 8 | Unused |
k_ESteamInputType_SwitchJoyConSingle | 9 | Unused |
k_ESteamInputType_SwitchProController | 10 | Nintendo Switch Pro 控制器 |
k_ESteamInputType_MobileTouch | 11 | Steam Link App's Mobile Touch Controller |
k_ESteamInputType_PS3Controller | 12 | Sony's Playstation 3 Controller or PS3/PS4 compatible fight stick |
k_ESteamInputType_Count | 13 | Current number of values returned |
k_ESteamInputType_MaximumPossibleValue | 255 | 傳回的可能的最大值。 |
ESteamControllerPad
Steam 控制器裝置上的觸控板區域。
備註:在 VSC 上這些值對應到左右觸感回饋觸控板。
在 DS4 上這些值對應到單一的中央觸控板的左右兩半。
名稱 | 值 | 說明 |
k_ESteamControllerPad_Left | 0 | Steam 控制器裝置上的左觸控板區域。 相容模型:VSC, DS4 |
k_ESteamControllerPad_Right | 1 | Steam 控制器裝置上的右觸控板區域。 相容模型:VSC, DS4 |
Typedefs
以下為定義來用於 ISteamController 中的 typedefs 。
常數
以下為定義來用於 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 | 類比操作在任一軸上可回報的最小值。 |