playtest-unity/playtest/Library/PackageCache/com.unity.visualscripting@1.../Documentation~/vs-capturing-player-inputs-...

86 lines
5.1 KiB
Markdown
Raw Normal View History

2023-06-19 23:21:21 -04:00
# Capture input with the Input System package
> [!IMPORTANT]
> If you don't complete the prerequisite configuration for your project, you can't use the Input System package with Visual Scripting. For more information, see [Input System package prerequisites](vs-capture-player-input.md#input-system-package-prerequisites).
To use the Input System package with Visual Scripting to capture input in your project:
1. [Open](vs-open-graph-edit.md) or [create](vs-create-graph.md) a Script Graph attached to the GameObject that you want your users to move.
2. [!include[open-fuzzy-finder](./snippets/vs-open-fuzzy-finder.md)]
3. Go to **Events** > **Input** or search for **On Input System Event**.
4. Select an Input System Event node. In this example, select the **On Input System Event Vector 2** node to add it to the graph.
5. Set the **On Input System Event Vector 2** node's **Input Action Change Type** control to **On Hold**:
![An image of the Graph window, that displays an On Input System Event Vector 2 node. The Input Action Change Type control is open and being set to On Hold.](images/vs-input-new-system-v2-node-set.png)
6. In the **Input Action** list on the **On Input System Event Vector 2** node, select an Input Action to trigger the node. In this example, select **Move**.
> [!NOTE]
> By default, Visual Scripting displays all Input Actions from the Input Action asset attached to your current GameObject's Player Input component.
7. [!include[open-fuzzy-finder](./snippets/vs-open-fuzzy-finder.md)]
> [!TIP]
> If a context menu appears when you right-click, select **Add Node** to open the fuzzy finder.
8. Go to **Codebase** > **Unity Engine** > **Vector 3** or search for **Vector 3 Get X**.
9. Select **Get X** to add the **Vector 3 Get X** node to the graph.
10. [!include[open-fuzzy-finder](./snippets/vs-open-fuzzy-finder.md)]
11. Go to **Codebase** > **Unity Engine** > **Vector 3** or search for **Vector 3 Get Z**.
12. Select **Get Z** to add the **Vector 3 Get Z** node to the graph.
13. Select the **Vector 2 Value** output port on the **On Input System Event Vector 2** node.
14. [Make a connection](vs-creating-connections.md) to the **Target** input port on the **Vector 3 Get X** node:
![An image of the Graph window, that displays the On Input System Event Vector 2 node, the Vector 3 Get X, and Vector 3 Get Z nodes. A connection is being made from the Vector 2 Value port on the On Input System Event Vector 2 node and the Target port on the Vector 3 Get X node.](images/vs-input-new-system-connect-nodes-example.png)
15. Select the **Vector 2 Value** output port.
16. [Make a connection](vs-creating-connections.md) to the **Target** port on the **Vector 3 Get Z** node.
17. [!include[open-fuzzy-finder](./snippets/vs-open-fuzzy-finder.md)]
18. Go to **Codebase** > **Unity Engine** > **Transform** or search for **Translate**.
19. Select **Transform: Translate (X, Y, Z)** to add the Translate node to the graph.
20. Select the **Value: Float** output port on the **Vector 3 Get X** node.
21. [Make a connection](vs-creating-connections.md) to the **X** float input port on the **Translate** node.
22. Select the **Value: Float** output port on the **Vector 3 Get X** node.
23. [Make a connection](vs-creating-connections.md) to the **Z** float input port on the **Translate** node.
The finished graph looks similar to the following image:
![An image of the Graph window, that displays the final result of a simple input capture graph with the Input System package. An On Input System Event Vector 2 node connects its output trigger port to the input trigger port on a Transform Translate node. The On Input System Event Vector 2 node's Vector 2 output port connects to the Vector 3 input on a Vector 3 Get X node and a Vector 3 Get Z node. The Vector 3 Get X node connects its Float result port to the X input port on the Translate node. The Vector 3 Get Z node connects its Float result port to the Z input port on the Translate node.](images/vs-input-new-system-example.png)
24. To enter Play mode, select **Play** from [the Unity Editor's Toolbar](https://docs.unity3d.com/Manual/Toolbar.html).
25. While in the [Game view](https://docs.unity3d.com/Manual/GameView.html), press a key defined under the Input Actions asset for **Move** in the **Player** Action Map.
The GameObject moves along the X or Z axis in the Game view, based on the key pressed and the Input Actions asset.
For more information on how to define Input Actions, see [Input Action Assets](https://docs.unity3d.com/Packages/com.unity.inputsystem@latest/index.html?subfolder=/manual/ActionAssets.html) in the Input System package documentation.
## Additional resources
- [Capture user input in an application](vs-capture-player-input.md)
- [Add and configure a Player Input component](vs-capture-player-input-add-component.md)
- [On Input System Event Button node](vs-nodes-events-input-system-button.md)
- [On Input System Event Float node](vs-nodes-events-input-system-float.md)
- [On Input System Event Vector 2 node](vs-nodes-events-input-system-vector2.md)