docs.unity3d.com
  • Manual
  • Scripting API
  • Changelog
  • License
Show / Hide Table of Contents
  • About Visual Scripting
    • Configure project settings
      • Add or remove available nodes
      • Add or remove types
      • Create or restore a backup
    • Choose a control scheme
    • Configure your preferences
    • Update Visual Scripting
    • Version control systems
    • Use Visual Scripting with Unity Cloud Build
  • Basic concepts in Visual Scripting
    • The interface
    • Nodes
    • Graphs
      • Subgraphs and State Units
      • Transitions
    • Script Machines and State Machines
    • Object types
      • Custom types
    • Variables
  • Develop application logic with Script Graphs
    • Create a new graph file
      • Create a new blank graph with the Project window
      • Create a new unassigned graph with the empty graph creation flow
      • Create and assign a graph to an existing GameObject
      • Create and assign a graph to a new GameObject
      • Create a graph on a Script Machine or State Machine
    • Attach a graph file to a Script Machine or State Machine
    • Open a graph file
      • Add a node to a Script Graph
      • Connect nodes in a Script Graph
      • Create and add a variable to a Script Graph
      • Create node groups
      • Add comments to a graph
    • Add a Subgraph to a Script Graph
      • Add a Trigger or Data port to a Script Graph
    • Add a State Unit to a Script Graph
    • Custom Events
      • Add a Custom Event node
      • Add a Trigger Custom Event node
    • Capture user input in an application
      • Capture input using the Input Manager
      • Add and configure a Player Input component
      • Capture input using the Input System package
    • Use relations to debug
      • Predictive and live debugging
      • Working with debug messages
    • Live edit
      • Live edit during runtime
  • Develop logic transitions with state graphs
    • Create a new state
    • Create a transition between states
  • Advanced customization and development
    • Refactor a C# script with Visual Scripting
      • Add the RenamedFrom attribute to a C# script
    • Custom C# nodes
      • Create a new simple Custom C# node
      • Add ports to your Custom C# node
      • Add logic to your Custom C# node
      • Add relations to your Custom C# node
      • Add documentation to your Custom C# node
      • Custom C# node attributes reference
    • Create a Custom Scripting Event node
      • Create a Custom Scripting Event Sender node
      • Trigger a Custom Scripting Event from a C# script
      • Listen to a Custom Scripting Event from a C# script
    • Use a custom type
      • Add the Inspectable attribute to a custom type
      • Create a custom PropertyDrawer for a custom type
  • Node reference
    • This node
    • Control node
    • Time node
    • Events
      • Event nodes
      • Input Event nodes
        • On Input System Event Button
        • On Input System Event Float
        • On Input System Event Vector 2
        • On Button Input
        • On Keyboard Input
        • On Mouse Down
        • On Mouse Drag
        • On Mouse Enter
        • On Mouse Exit
        • On Mouse Input
        • On Mouse Over
        • On Mouse Up As Button
        • On Mouse Up
    • Variable node
    • Nulls node
    • Formula node
    • Nesting
      • Input node
      • Output node
      • State Unit node
      • Subgraph node
    • Script graph nodes
    • State graph nodes
  • Developer's guide
  • Known Issues

On Input System Event Button node

Note

The On Input System Event Button node is an Input System package node. For more information about how to use the Input System package in Visual Scripting, see Capture user input in an application.

The On Input System Event Button node listens for a specific Input Action from a Player Input component. It doesn't send or read any other data.

Use this node when you want to read user input but don't require any other data from an Input Action.

An image of the Graph window. An On Input System Event Button node displays with its details in the Graph Inspector.

Fuzzy finder category

The On Input System Event Button node is in the Events > Input category in the fuzzy finder.

Inputs

The On Input System Event Button node has the following input ports:

Name Type Description
Target Player Input The Player Input component that Visual Scripting uses to display a list of input actions. The default is This, which is the Player Input component attached to the GameObject where Visual Scripting runs the Script Graph. You can also connect a node that outputs a Player Input component.
Input Action Input Action An input action. Use the dropdown to select an input action from the Player Input component specified in Player Input, or connect a node that outputs an input action.

Controls

The On Input System Event Button node has the following controls:

Name Type Description
Input Action Change Type Input Action Change Option Set an Input Action Change Type to choose the interaction type that triggers the node.
On Pressed The node triggers when a user presses the button from the selected Input Action input asset.
On Hold The node triggers when a user holds the button from the selected Input Action input asset.
On Released The node triggers when a user releases the button from the selected Input Action input asset.

You can also set this control from the Graph Inspector.

Additional node settings

The On Input System Event Button node has additional settings. Access these settings from the Graph Inspector:

Name Type Description
Coroutine Toggle Enable Coroutine if you want Visual Scripting to run this node and any of its connected nodes as a coroutine. Coroutine nodes don't execute all their code in a single frame, so they can spread an effect over several frames. Coroutines can also help optimize your code. For more information on coroutines, refer to the Unity User Manual section on Coroutines.

Outputs

The On Input System Event Button node has one output port:

Trigger Output Trigger The control output port. Make a connection to specify what Visual Scripting does after the configured Player Input event, such as a button press, occurs in the application.

Example graph usage

In the following example, an On Input System Event Button node counts how many times the user has pressed a button from the Fire Input Action and logs the result to the console.

When a user presses a button associated with the Fire Input Action, Visual Scripting gets the current value of the Count Object variable with a Get Variable node. The Get Variable node sends Count's current value to an Add Inputs node's A port. Then, the Float literal node sends a value of 1 to the Add Inputs node's B port.

The On Input System Event Button node triggers the Set Variable node and assigns the value from the Add Inputs node's Sum port as the New Value of Count. The Set Variable node logs the value of Count to the console with the Debug Log node:

An image of the Graph window, that displays an On Input System Event Button node connected to a Set Variable node. The Set Variable node takes its New Value input from an Add Inputs node, which adds the current value of the Count variable to the value from a Float literal node. The Set Variable node logs the result to the console with a Debug Log node.

Related nodes

The following nodes are related or similar to the On Input System Event Button node:

  • On Input System Event Float node
  • On Input System Event Vector 2 node
In This Article
Back to top
Copyright © 2025 Unity Technologies — Trademarks and terms of use
  • Legal
  • Privacy Policy
  • Cookie Policy
  • Do Not Sell or Share My Personal Information