Class ButtonWithOneModifier
A button with an additional modifier. The button only triggers when the modifier is pressed.
Inherited Members
Namespace: UnityEngine.InputSystem.Composites
Syntax
[Preserve]
[DisplayStringFormat("{modifier}+{button}")]
public class ButtonWithOneModifier : InputBindingComposite<float>
Remarks
This composite can be used to require another button to be held while pressing the button that triggers the action. This is most commonly used on keyboards to require one of the modifier keys (shift, ctrl, or alt) to be held in combination with another key, e.g. "CTRL+1".
// Create a button action that triggers when CTRL+1
// is pressed on the keyboard.
var action = new InputAction(type: InputActionType.Button);
action.AddCompositeBinding("ButtonWithOneModifier")
.With("Modifier", "<Keyboard>/leftCtrl")
.With("Modifier", "<Keyboard>/rightControl")
.With("Button", "<Keyboard>/1")
Note that this is not restricted to the keyboard and will preserve the full value of the button.
// Create a button action that requires the A button on the
// gamepad to be held and will then trigger from the gamepad's
// left trigger button.
var action = new InputAction(type: InputActionType.Button);
action.AddCompositeBinding("ButtonWithOneModifier")
.With("Modifier", "<Gamepad>/buttonSouth")
.With("Button", "<Gamepad>/leftTrigger");
Fields
button
Binding for the button that is gated by the modifier. The composite will assume the value of this button while the modifier is pressed.
Declaration
public int button
Field Value
Type | Description |
---|---|
Int32 | Part index to use with ReadValue<TValue>(Int32). |
Remarks
This property is automatically assigned by the input system.
modifier
Binding for the button that acts as a modifier, e.g. <Keyboard/leftCtrl
.
Declaration
public int modifier
Field Value
Type | Description |
---|---|
Int32 | Part index to use with ReadValue<TValue>(Int32). |
Remarks
This property is automatically assigned by the input system.
Methods
EvaluateMagnitude(ref InputBindingCompositeContext)
Same as ReadValue(ref InputBindingCompositeContext) in this case.
Declaration
public override float EvaluateMagnitude(ref InputBindingCompositeContext context)
Parameters
Type | Name | Description |
---|---|---|
InputBindingCompositeContext | context | Evaluation context passed in from the input system. |
Returns
Type | Description |
---|---|
Single | A >0 value if the composite is currently actuated. |
Overrides
ReadValue(ref InputBindingCompositeContext)
Declaration
public override float ReadValue(ref InputBindingCompositeContext context)
Parameters
Type | Name | Description |
---|---|---|
InputBindingCompositeContext | context | Evaluation context passed in from the input system. |
Returns
Type | Description |
---|---|
Single | The current value of the composite. |